{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from copy import deepcopy\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from scipy import stats\n",
    "\n",
    "from sklearn.metrics import mean_absolute_percentage_error\n",
    "\n",
    "import dowhy\n",
    "from dowhy import CausalModel\n",
    "\n",
    "from sklearn.linear_model import LinearRegression, LogisticRegression, LassoCV\n",
    "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n",
    "\n",
    "from lightgbm import LGBMRegressor, LGBMClassifier\n",
    "\n",
    "import networkx as nx\n",
    "\n",
    "from tqdm import tqdm\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.style.use('fivethirtyeight')\n",
    "\n",
    "import graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.8'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dowhy.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "COLORS = [\n",
    "    '#00B0F0',\n",
    "    '#FF0000',\n",
    "    '#B0F000'\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 09\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Matching"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "earnings_data = pd.read_csv(r'./data/ml_earnings.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAUCAYAAADx7wHUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAABJ0AAASdAHeZh94AAAEUklEQVR4nO3Ye+jfUxgH8Ndv84frprZmGWJjaJRYIYy5zErEJH9hRESGDI30eJTLwtzmkkvWSqHWyKW5riy3oa2ROw1/mM0mtwjz88f5fPP9ffb5/vz2+/02knd9e/o+57zPOZ/nPM95nnO6uru7/Y/BwZB/egH/JWzRpMzM+ZiK3SLip827pH8/MvMAvIWzI+LBlr6rHuaZORFLMTMi5lS6ETgJx2FfjMGveAcP4aGI+KPDxDvhWmVzRuArPI6MiG8HizMQZOZsTMR4jMTP+Lyac25ErG3gLMRB2CMifqQ5zK/H97inTXcK7seBeAO3YQH2wQN4LDO7GiYch7dxprJBt+IzXITXqk0aMGcQcAm2wfO4HQ/jd1yDFZm5cwPnBozGjJaiR5hn5ngcjQci4ue2po9wAp5u98DMvFL54JMxTTFwO+7GKMyIiDvbeHOqD7gO5w0CZ6AYFhG/1JWZeR2uxCyc394WEUsz8wOcm5mzI2J93TPPQhcerRFfiogn66EcEatwb/X3iNpCxmIKVuKu2jyBn3BaZm4zEM5goMmQFR6r5B4d2h/BLooDbhDmR2M9Xt+ItfxWyd9r+iMr+VzDJvyAV7C1cu4MhLMpcXwlV3Rof6WSx9AW5tVu74f3+5rBM3MLnF79XVRr3rOSH3Wgf6x44Xi8OADOoCEzZ2JbDFcS0qGKIW/sQHmzkpPo6ZljMFTJnH3FjUoSeiYinq21Da/kdx24Lf32A+QMJmYqx8nFiiEXYUpErGnqHBHf4Rcl1HsYs5Ul+1R6ZOYMXIoPcFo/Ft7K/htzBesPp8+IiNER0aVk6WkYi2WZuX8vtHVKOdXDmK3sveXfTZqZFyglxHuYHBHrGrq1vGh4QxsMq/XrL2fQERFfR8RC5UgZgfm9dN9KZbt2Y66uZK91XGZejLl4VzHkqg5dP6zk+A7trQzZfj72h7PJEBGfKw4zITNH1tszc4hy5KympzG/whp/JYENkJlXKEX0csWQqzv1xeJKTqkmbR9nOxyi7OjrA+RsauxYyfUNbXsqR89y2owZEd14GSMzc/c6KzOvVhLO2zgqIr7pbQUR8Smew664oD6ccuOY31459IeTmfMyszszp/e2nk7IzL0yc3SDfkhVtI/Cqx2usa0SbTEbPnQsUG4zx+KTtoHPUO7K67EEMzKzPvDKiJhX052PV3FHZh6F95Ur6WQlVK9qWODGcloOUa9z+4qpuCkzX8anWIsdcLiSgFbhnA7cKYpNnmhfSAsL8LW/ascWdqvkUKVsiIbf9PpMladNxDzFIJdiHO7AwU0PCP3g7Isf8HSHD/47vID7lFwxDZcpDrVOiYYJEfFenZSZw3EinoqIL2l+NZqlPHbsHxHL+rnAzYLM3F7xpFsi4vLNPPeFygZPioglNL8a3YovlLD+t+Mw5To7Z3NOmplbKY8fC1qGpMEzq86TlDPq5v8fhzdEZu6NUzEvIla29H8CoUyzHvt+H18AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left( 200, \\  3\\right)$"
      ],
      "text/plain": [
       "(200, 3)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>False</td>\n",
       "      <td>110579.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>28</td>\n",
       "      <td>False</td>\n",
       "      <td>142577.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22</td>\n",
       "      <td>True</td>\n",
       "      <td>130520.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25</td>\n",
       "      <td>True</td>\n",
       "      <td>142687.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>24</td>\n",
       "      <td>False</td>\n",
       "      <td>127832.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  took_a_course  earnings\n",
       "0   19          False  110579.0\n",
       "1   28          False  142577.0\n",
       "2   22           True  130520.0\n",
       "3   25           True  142687.0\n",
       "4   24          False  127832.0"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>age</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">19</th>\n",
       "      <th>False</th>\n",
       "      <td>111110.875000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>123488.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">20</th>\n",
       "      <th>False</th>\n",
       "      <td>115227.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>125633.285714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">21</th>\n",
       "      <th>False</th>\n",
       "      <td>117114.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>130155.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">22</th>\n",
       "      <th>False</th>\n",
       "      <td>120226.363636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>131437.222222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">23</th>\n",
       "      <th>False</th>\n",
       "      <td>124460.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>134654.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">24</th>\n",
       "      <th>False</th>\n",
       "      <td>126878.583333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>137564.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">25</th>\n",
       "      <th>False</th>\n",
       "      <td>130812.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>142715.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">26</th>\n",
       "      <th>False</th>\n",
       "      <td>134004.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>144552.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">27</th>\n",
       "      <th>False</th>\n",
       "      <td>139035.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>148744.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">28</th>\n",
       "      <th>False</th>\n",
       "      <td>141580.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>152485.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">29</th>\n",
       "      <th>False</th>\n",
       "      <td>145248.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>152694.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">30</th>\n",
       "      <th>False</th>\n",
       "      <td>150333.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>159586.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">31</th>\n",
       "      <th>False</th>\n",
       "      <td>152532.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>163592.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">32</th>\n",
       "      <th>False</th>\n",
       "      <td>157515.200000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>169854.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">33</th>\n",
       "      <th>False</th>\n",
       "      <td>162453.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>170020.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">34</th>\n",
       "      <th>False</th>\n",
       "      <td>165694.200000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>178922.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">35</th>\n",
       "      <th>False</th>\n",
       "      <td>172134.250000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>180404.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <th>False</th>\n",
       "      <td>175240.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">37</th>\n",
       "      <th>False</th>\n",
       "      <td>181514.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>187627.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <th>False</th>\n",
       "      <td>185546.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <th>False</th>\n",
       "      <td>187253.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">41</th>\n",
       "      <th>False</th>\n",
       "      <td>201729.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>207676.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">42</th>\n",
       "      <th>False</th>\n",
       "      <td>203029.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>True</th>\n",
       "      <td>214445.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <th>False</th>\n",
       "      <td>210243.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <th>True</th>\n",
       "      <td>233035.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <th>False</th>\n",
       "      <td>239510.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        earnings\n",
       "age took_a_course               \n",
       "19  False          111110.875000\n",
       "    True           123488.000000\n",
       "20  False          115227.142857\n",
       "    True           125633.285714\n",
       "21  False          117114.900000\n",
       "    True           130155.000000\n",
       "22  False          120226.363636\n",
       "    True           131437.222222\n",
       "23  False          124460.900000\n",
       "    True           134654.333333\n",
       "24  False          126878.583333\n",
       "    True           137564.250000\n",
       "25  False          130812.800000\n",
       "    True           142715.000000\n",
       "26  False          134004.250000\n",
       "    True           144552.800000\n",
       "27  False          139035.600000\n",
       "    True           148744.333333\n",
       "28  False          141580.000000\n",
       "    True           152485.333333\n",
       "29  False          145248.600000\n",
       "    True           152694.000000\n",
       "30  False          150333.750000\n",
       "    True           159586.400000\n",
       "31  False          152532.000000\n",
       "    True           163592.000000\n",
       "32  False          157515.200000\n",
       "    True           169854.000000\n",
       "33  False          162453.500000\n",
       "    True           170020.000000\n",
       "34  False          165694.200000\n",
       "    True           178922.000000\n",
       "35  False          172134.250000\n",
       "    True           180404.500000\n",
       "36  False          175240.666667\n",
       "37  False          181514.000000\n",
       "    True           187627.000000\n",
       "38  False          185546.333333\n",
       "39  False          187253.666667\n",
       "41  False          201729.000000\n",
       "    True           207676.000000\n",
       "42  False          203029.000000\n",
       "    True           214445.000000\n",
       "43  False          210243.000000\n",
       "45  True           233035.000000\n",
       "48  False          239510.000000"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_data.groupby(['age', 'took_a_course']).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 6695.57088285231$"
      ],
      "text/plain": [
       "6695.570882852306"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute naive estimate \n",
    "treatment_avg = earnings_data.query('took_a_course==1')['earnings'].mean()\n",
    "cntrl_avg = earnings_data.query('took_a_course==0')['earnings'].mean()\n",
    "\n",
    "treatment_avg - cntrl_avg"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define the graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes = ['took_a_course', 'earnings', 'age']\n",
    "edges = [\n",
    "    ('took_a_course', 'earnings'),\n",
    "    ('age', 'took_a_course'),\n",
    "    ('age', 'earnings')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes:\n",
    "    gml_string += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges:\n",
    "    gml_string += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string += ']'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model = CausalModel(\n",
    "    data=earnings_data,\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    graph=gml_string\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EMmBfH19admyJZMnTyY+Pp5//etfzJ8/nypVqvCvf/2L6OhoLl++bPVMEckhFAMiOVxAQADh4eF8+eWX7N69mxYtWjB16lRCQkJ47rnnWL58OW632+qZIpKNKQZEcpFChQrx+OOPEx0dzaZNm6hWrRojRowgNDSUgQMH8s033+h0yyLyJ4oBkVyqRIkSPPfccyxbtowlS5Zw55138u9//5vq1avz9ttvs2fPHn2GgYgAigERr3DPPfcwYMAANm7cyFdffYXNZuORRx4hLCyMUaNG8d1331k9UUQspBgQ8SI2m40qVarw1ltvsXv3bsaNG8eZM2do2bIlzZo149NPP+X06dNWzxSRLKYYEPFSNpuNunXrMmrUKOLi4nj99dfZu3cv9erVo0OHDvz3v/8lISHB6pkikgUUAyKCw+GgadOmfPrpp8THx/PUU0+xfPlyqlWrxsMPP0xkZCRJSUlWzxSRTKIYEJHfyZMnDx06dGDGjBns3buXDh06MGvWLEJCQnj66adZvHgxV69etXqmiGQgxYCI/KUCBQrw8MMP43K52LZtG3Xr1uWjjz4iJCSEf//736xbt06HKorkAooBEbkpxYoV46mnnmLRokWsWrWKe+65h9dee40qVaowZMgQdu7cqUMVRXIoxYCI3LLSpUvTr18/1q1bx9y5c8mbNy89e/bk/vvvZ8SIERw6dMjqiSJyCxQDInJb7r33Xl5//XW2b9/OZ599xoULF2jfvj0PPPAAH3/8MSdOnLB6oojcgGJARDKEzWbjvvvuY8SIEezbt493332XQ4cO0ahRIx566CGmTp3Kzz//bPVMEbkOxYCIZDi73c4DDzzA+PHjiY+Pp2/fvqxfv56aNWvStWtX5syZw8WLF62eKSK/UgyISKby9/enTZs2fP755+zfv58uXboQGRlJ5cqV6dmzJ/Pnzyc5OdnqmSJeTTEgIlkmX758dOnShTlz5rBz504aN27MpEmTCAkJ4YUXXmDVqlWkpqZaPVPE6ygGRMQShQsXpkePHsyfP5/169cTEhLCO++8Q6VKlXj11VfZsmWLDlUUySKKARGx3F133cULL7zAypUrWbBgAYULF+b555+nZs2aDBs2jLi4OKsniuRqigERyVbKly/Pq6++yubNm5kxYwYpKSkYhkH9+vUZM2YMx44ds3qiSK6jGBCRbMlms1G9enWG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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get the estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor\n",
      "Estimand expression:\n",
      "       d                         \n",
      "────────────────(E[earnings|age])\n",
      "d[took_a_course]                 \n",
      "Estimand assumption 1, Unconfoundedness: If U→{took_a_course} and U→earnings then P(earnings|took_a_course,age,U) = P(earnings|took_a_course,age)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable(s) found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable(s) found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Get the estimand\n",
    "estimand = model.identify_effect()\n",
    "\n",
    "print(estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "distance_matching\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (Matching)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.distance_matching',\n",
    "    target_units='ate',\n",
    "    method_params={'distance_metric': 'minkowski', 'p': 2})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAQCAYAAADzhpp3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAABJ0AAASdAHeZh94AAAEPUlEQVR4nO2ZbWiWZRTHf7OF4TIDK/ahWClZFuWUsCQwlyGlUS4S+qCUkCYVWi1s2Mt//6AXoVbOCoeF1vJbpB+iYmWjF1sJ+SmSNKe9YUYuZZZm4PpwXY/e3j73nje3EPzDw9l9n+t/znVfL+e6zllVf38/p3HqoDr5YPtO4AagHpgAjATWSZqbZcD2hcDTwM3AaGA3sAGwpD/ztC/HRzmcWcAS4IpEv74BWiV1Z/EKwfY84K34uEDS6yeDY3sXUJdhYo+kWoBhKcUTwIOEgfm1iI6MJQzCfGAz8BLQQxiobtuj89BK8lFmv5YD7wGTgA+BFcAW4HZgk+3MiS5g9yJgJXBgkDj7Aef5vZBrUJ0iPAz8AvxAWNFdBRy8BlwALJa0MtHJ1mjrGWBRhT5K4tiuBR4F9gBXS/o9oWsAPiFEhLeL8Ju0WwWsAfYC70YfJ5uzT1LLQA2OmzBJRwfCdqHOjAFmALuAV1NqAQuBebabJP1Vjo8yOXWEyPF1crJydmz3AecX5fh4LAZuBKZFOVicAZEOiaUg14FOSUeSCkl9wCZgBHBdBT7KwXbgMDDZ9nlJhe2phPPv41IM2h4PPA+skPTZYHGA4bbn2l5me4ntBttnJBukQ2IpuCzKbRn67YQdOA7YWIGfkiCp1/ZjQCvwne0NhJA0FrgN+Ai4r1h7tquBDuAnYNlgcSJqIy+JnbbnS/oUKttho6Lcn6HPvT+3Ah9lQdLLwB2EBbkAaAbmAD8Da9OhsgCeAiYC90g6OIicNcB0wqTVAFcB7cDFwAe2J0BlO6wQqqIc8kTP9lLgWaANeAX4DbgceA5YZ7te0tIi7Ewm7JAXi00FyuEASEofzt8Ci2wfAJqAFqCxkgnL7aBRGfpzUu2GBLanAcuB9ZIeSai22G4khPAm26sk9QxgJxfWtgFPFum7ZE4RWEWYsKlQ2Q77PspxGfpLo8w64wYLt0Z5wtVf0t+2NwONhJCVOWHA2Rz7tkMZt9PVtlcTLhYPlckphFz4roHKJiw3IDNsD0veFG2PBK4HDgJfVeCjHAyPMuvqnnt/uICdf4A3MnSTCBP+BWHhdlfAKYQpUfZABRMmaYftTsJN8AFCNp+DCSuiPZmDDRE+J1RFFtpul3S0MmL7FsJCOgR8mSTFqs2ZwA5J/8bLwr35HNhuIQz+m8kyUzmcqLsS2C2pN/W+jnAGQ0z007XE2cDs+Fgb5RTba+Pff0hKZuv3Ez68zfZ0YCtwLdBACIWP5+l4qT5K5bxDyLNuArbaXk+4dIwnhMsqoFnS3lTXNhKS7ksIxYChxByg2XYXsBPoI6Qhs4CzgPeJ5an0DqsH7k69GxN/AD+SKK/EXXYNx4q/MwlF1jZC8beXE1GSj1I5ko7YnknY9XcRzqsRQC/hw9skdebp1/+JLkJeO5EQAmuAfYTw2QF0SOoHqDr975VTC/8BnkfEAiepQwsAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 10118.445$"
      ],
      "text/plain": [
       "10118.445"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='random_common_cause')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a random common cause\n",
      "Estimated effect:10118.445\n",
      "New effect:10333.1431\n",
      "p value:0.28\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inverse Probability Weighting (IPW)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.read_csv('data/ch_01_drug_data.csv')\n",
    "\n",
    "gender = [1] * (24 + 56 + 17 + 25) + [0] * (3 + 39 + 6 +74)\n",
    "clot = [1] * 24 + [0] * 56 + [1] * 17 + [0] * 25 + [1] * 3 + [0] * 39 + [1] * 6 + [0] * 74\n",
    "drug = [0] * (24 + 56) + [1] * (17 + 25) + [0] * 42 + [1] * 80\n",
    "\n",
    "drug_data = pd.DataFrame(dict(\n",
    "    gender=gender,\n",
    "    clot=clot,\n",
    "    drug=drug\n",
    "))\n",
    "\n",
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes_drug = ['drug', 'clot', 'gender']\n",
    "edges_drug = [\n",
    "    ('drug', 'clot'),\n",
    "    ('gender', 'drug'),\n",
    "    ('gender', 'clot')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string_drug = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes_drug:\n",
    "    gml_string_drug += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges_drug:\n",
    "    gml_string_drug += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string_drug += ']'\n",
    "\n",
    "# Instantiate the CausalModel\n",
    "model_drug = CausalModel(\n",
    "    data=drug_data,\n",
    "    treatment='drug',\n",
    "    outcome='clot',\n",
    "    graph=gml_string_drug\n",
    ")\n",
    "\n",
    "# Identify effect\n",
    "estimand_drug = model_drug.identify_effect()\n",
    "\n",
    "# Get estimate (IPW weighting)\n",
    "estimate_drug = model_drug.estimate_effect(\n",
    "    identified_estimand=estimand_drug,\n",
    "    method_name='backdoor.propensity_score_weighting',\n",
    "    target_units='ate'\n",
    ")\n",
    "\n",
    "print(estimate_drug.value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "propensity_score_weighting\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aleks\\anaconda3\\envs\\causal_book_py38\\lib\\site-packages\\sklearn\\utils\\validation.py:1111: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (IPW weighting)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.propensity_score_weighting',\n",
    "    target_units='ate'\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 10313.5668311203$"
      ],
      "text/plain": [
       "10313.566831120348"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0313566831120348$"
      ],
      "text/plain": [
       "0.03135668311203481"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(estimate.value - 10e3) / 10e3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## S-Learner: The Lone Ranger"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_effect(effect_true, effect_pred, figsize=(10, 7), ylim=(5000, 22000)):\n",
    "    plt.figure(figsize=figsize)\n",
    "    plt.scatter(effect_true, effect_pred, color=COLORS[0])\n",
    "    plt.plot(np.sort(effect_true), np.sort(effect_true), color=COLORS[1], alpha=.7, label='Perfect model')\n",
    "    plt.xlabel('$True\\ effect$', fontsize=14, alpha=.5)\n",
    "    plt.ylabel('$Predicted\\ effect$', fontsize=14, alpha=.5)\n",
    "    plt.ylim(ylim[0], ylim[1])\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Train set\n",
    "earnings_interaction_train = pd.read_csv(r'./data/ml_earnings_interaction_train.csv')\n",
    "\n",
    "# Test set\n",
    "earnings_interaction_test = pd.read_csv(r'./data/ml_earnings_interaction_test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( \\left( 5000, \\  4\\right), \\  \\left( 100, \\  4\\right)\\right)$"
      ],
      "text/plain": [
       "((5000, 4), (100, 4))"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "earnings_interaction_train.shape, earnings_interaction_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "earnings_interaction_train['took_a_course'] = earnings_interaction_train['took_a_course'].astype(float)\n",
    "earnings_interaction_test['took_a_course'] = earnings_interaction_test['took_a_course'].astype(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>python_proficiency</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>earnings</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>23</td>\n",
       "      <td>0.632318</td>\n",
       "      <td>1.0</td>\n",
       "      <td>139267.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20</td>\n",
       "      <td>0.602551</td>\n",
       "      <td>0.0</td>\n",
       "      <td>115569.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "      <td>0.518225</td>\n",
       "      <td>0.0</td>\n",
       "      <td>119142.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>25</td>\n",
       "      <td>0.945161</td>\n",
       "      <td>0.0</td>\n",
       "      <td>130291.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>30</td>\n",
       "      <td>0.636251</td>\n",
       "      <td>1.0</td>\n",
       "      <td>164209.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  python_proficiency  took_a_course  earnings\n",
       "0   23            0.632318            1.0  139267.0\n",
       "1   20            0.602551            0.0  115569.0\n",
       "2   21            0.518225            0.0  119142.0\n",
       "3   25            0.945161            0.0  130291.0\n",
       "4   30            0.636251            1.0  164209.0"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train \n",
    "earnings_interaction_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>python_proficiency</th>\n",
       "      <th>took_a_course</th>\n",
       "      <th>true_effect</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30</td>\n",
       "      <td>0.223877</td>\n",
       "      <td>1.0</td>\n",
       "      <td>11120.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>23</td>\n",
       "      <td>0.394152</td>\n",
       "      <td>1.0</td>\n",
       "      <td>11970.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>37</td>\n",
       "      <td>0.214638</td>\n",
       "      <td>1.0</td>\n",
       "      <td>11073.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>21</td>\n",
       "      <td>0.869069</td>\n",
       "      <td>1.0</td>\n",
       "      <td>14345.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>41</td>\n",
       "      <td>0.833934</td>\n",
       "      <td>1.0</td>\n",
       "      <td>14169.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age  python_proficiency  took_a_course  true_effect\n",
       "0   30            0.223877            1.0      11120.0\n",
       "1   23            0.394152            1.0      11970.0\n",
       "2   37            0.214638            1.0      11073.0\n",
       "3   21            0.869069            1.0      14345.0\n",
       "4   41            0.833934            1.0      14169.0"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Test\n",
    "earnings_interaction_test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define the graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Construct the graph (the graph is constant for all iterations)\n",
    "nodes = ['took_a_course', 'python_proficiency', 'earnings', 'age']\n",
    "edges = [\n",
    "    ('took_a_course', 'earnings'),\n",
    "    ('age', 'took_a_course'),\n",
    "    ('age', 'earnings'),\n",
    "    ('python_proficiency', 'earnings')\n",
    "]\n",
    "\n",
    "# Generate the GML graph\n",
    "gml_string = 'graph [directed 1\\n'\n",
    "\n",
    "for node in nodes:\n",
    "    gml_string += f'\\tnode [id \"{node}\" label \"{node}\"]\\n'\n",
    "\n",
    "for edge in edges:\n",
    "    gml_string += f'\\tedge [source \"{edge[0]}\" target \"{edge[1]}\"]\\n'\n",
    "    \n",
    "gml_string += ']'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model = CausalModel(\n",
    "    data=earnings_interaction_train,\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    effect_modifiers='python_proficiency',\n",
    "    graph=gml_string\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get the estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor\n",
      "Estimand expression:\n",
      "       d                         \n",
      "────────────────(E[earnings|age])\n",
      "d[took_a_course]                 \n",
      "Estimand assumption 1, Unconfoundedness: If U→{took_a_course} and U→earnings then P(earnings|took_a_course,age,U) = P(earnings|took_a_course,age)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable(s) found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable(s) found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Get the estimand\n",
    "estimand = model.identify_effect()\n",
    "\n",
    "print(estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (S-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.SLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'overall_model': LGBMRegressor(n_estimators=500, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12547.0682056748$"
      ],
      "text/plain": [
       "12547.068205674783"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Refute"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='random_common_cause')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a random common cause\n",
      "Estimated effect:12547.068205674783\n",
      "New effect:12544.19837098707\n",
      "p value:0.8999999999999999\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "refutation = model.refute_estimate(\n",
    "    estimand=estimand, \n",
    "    estimate=estimate,\n",
    "    method_name='placebo_treatment_refuter')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:12547.068205674783\n",
      "New effect:14.934216852362804\n",
      "p value:0.84\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(refutation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0502732092578003$"
      ],
      "text/plain": [
       "0.050273209257800315"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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GEh0dDSxsbHccccd3HHHHfzpT38CwG63s3btWkaNGsWgQYMYN24cmzZtMh7bMFu7ZcsWbrnlFgYNGsRvfvMbhg4dCsCtt95KeHg4u3fvBmDfvn1897vfZfDgwQwfPpz/9//+H+fOnTOuZ7fbeemll/jGN75BVFQUV111FU8//TQA1157LQCTJk0iPDycm266qcXX09Cnd955h+9+97sMGjSIG2+8kX/+8598+eWXTJ06lZiYGKZPn86RI0ccHvub3/yG6667DovFwnXXXcfGjRsdzhcUFHDTTTcRHR3NN7/5TTIzM5s9/8mTJ/nP//xPEhISSEhI4M477yQ/P78DI9I5mhkWERERj9I3I6PN80E2G35+3Tefd6FRkNoVQUFB1NbWArBq1Sref/99nn/+eZKTk/nss8946KGHCA8PZ9q0acZjnn76aVatWsVLL72E2Wxm/PjxjB07ljfeeIMxY8YQERHBv/71L2bOnMnjjz/OSy+9xNmzZ1m+fDk//OEPeeONNwD4yU9+woYNG/jpT3/Kt7/9bUpKSsjJyQHgo48+YvLkybzzzjtcffXV9OnTp83XsXr1ap555hmGDh3K//t//4/777+fyMhInnjiCSwWC4sWLWLZsmVGcL9t2zYeffRRnnnmGSZPnsxf//pXHnnkEaKiokhPT8dms/H973+fsLAwPvjgA6qqqnj88cepqam5PAYXLnDLLbcwevRo/vSnP9GnTx9eeuklbrvtNrKysujbt2+3jFFLFAyLiIiIdNHnn3/Oli1bmDBhApWVlaxbt453332XcePGATB06FA+//xzXnvtNYdgeMGCBdx2223G96WlpQBEREQQHR0NwC9/+UtmzJjBj370I6PdCy+8wPjx4zl9+jTBwcH8+te/ZvXq1cyZMweAxMRERo8eDUBkZCQAAwYMMK7Zlh/84AdMnToVgB/+8IfMnj2bN954g/HjxwNw//3389hjjxntf/WrX5GRkcGCBQsASE5OJjs7m7Vr15Kens6uXbv46quv2L9/P3FxcUB9wJ2enm5c45133sFut/PrX//aWDP4F7/4BcnJyezYsYMZM2a02+/OUjAsIiIi0gkffvghQ4YMoa6ujtraWr773e+yZs0acnNzqa6uZtasWQ6bQdTW1hIfH+9wjeuuu67d59m/fz8FBQX84Q9/MI7Z7XYADh8+jNlspqam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EydOBCA1NZUpU6awZMkS1q5di91uZ8mSJUybNk23XkRERER8hMcFw9/4xjd46623+MlPfsLPfvYzYmNj+fGPf8z8+fONNg899BBVVVU8+uijlJWVcf311/Puu+/Sv39/o80zzzyD2Wxm3rx5VFdXM378eF555RXMZrPR5tVXX2XZsmXMnDkTgPT0dNasWdNzL1ZERERE3MpUVlZmb7+ZuJq7k8el+2gsvYvG03toLL2HxtK7uHs8PS5nWERERESkpygYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWBYRERERHyWgmERERER8VmmsrIyu7s7ISIiIiLiDpoZFhERERGfpWBYRERERHyWgmERERER8VkKhkVERETEZykYFhERERGfpWC4k/bs2cPs2bMZPnw44eHhvPXWWw7n7XY7q1ev5sorr2TQoEHcdNNNHDx40KFNTU0Njz76KImJicTExDB79mwKCwsd2pSVlbFgwQLi4+OJj49nwYIFlJWVObQ5fvw4GRkZxMTEkJiYyGOPPcbFixdd8rq9UXtjuXXrVmbOnElSUhLh4eHs3r272TU0lp6hrbGsra3lqaeeYty4ccTExJCamsr8+fM5fvy4wzU0lp6jvX+bq1at4lvf+hYxMTEkJCRw6623sm/fPoc2Gk/P0N5YNvbQQw8RHh7OSy+95HBcY+kZ2hvLRYsWER4e7vA1ZcoUhzaeNpYKhjupsrKSq666imeffZbg4OBm59euXcu6det47rnn+Oijj7BYLMyYMYPz588bbZYvX862bdvYsGED27dv5/z582RkZGC1Wo028+fPJycnh82bN7NlyxZycnJ44IEHjPNWq5WMjAwqKirYvn07GzZsYOvWraxYscK1b4AXaW8sL1y4wOjRo/npT3/a6jU0lp6hrbG8cOEC+/fvZ+nSpXz88cf87ne/o7CwkFmzZlFXV2e001h6jvb+baakpPD888/zt7/9jczMTBISEpg1axbFxcVGG42nZ2hvLBu8//77/OMf/2Dw4MHNzmksPYMzYzlx4kRyc3ONr82bNzuc97Sx1DrD3WDIkCGsWbOGu+++G6ifFb7yyiu5//77Wbp0KQBVVVWkpKTwX//1X8ybN4/y8nKSk5NZt24dd955JwAnTpxg5MiRbNmyhbS0NHJzcxkzZgyZmZmMHTsWgL1795Kens5nn31GSkoKf/nLX7jzzjs5cOAAsbGxAGzatInFixeTl5dHaGioG96R3qvpWDZWWlpKUlIS27Zt48YbbzSOayw9U1tj2eCrr75i7Nix7NmzhxEjRmgsPZgz43nu3Dni4+N55513SEtL03h6qNbG8tixY0ybNo333nuPWbNmsWDBAn70ox8B+j3rqVoay0WLFnHmzBk2bdrU4mM8cSw1M+wCR48epaioiMmTJxvHgoODGTdunHELLzs7m9raWoc2sbGxpKamGm2ysrLo168fY8aMMdqMHTuWkJAQhzapqanGDwJAWloaNTU1ZGdnu/JlyiUay96r4U5NeHg4oLHszS5evMjGjRsJDQ1l5MiRgMazN6mrq2P+/PksXbqU1NTUZuc1lr3L3r17SU5O5vrrr2fx4sWcPn3aOOeJY+nfmRcpbSsqKgLAYrE4HLdYLJw6dQqA4uJizGYzkZGRzdo03OIrLi4mMjISk8lknDeZTAwcONChTdPniYyMxGw2O9wqFNfRWPZOFy9e5IknnmD69OkMGTIE0Fj2RpmZmdx3331cuHCBQYMG8Yc//IGoqChA49mbrF69moiICO67774Wz2sse48pU6Zwyy23kJCQwLFjx1i1ahW33noru3btIjAw0CPHUsGwCzUeRKhPn2h6rKmmbVpq70ybto5Lz9BYeq66ujoWLFhAeXk5b7/9drvtNZae68Ybb2T37t2UlpayceNG7r33Xv7yl78waNCgVh+j8fQsn3zyCb/73e9aLE5uj8bS89x+++3G30eMGMGoUaMYOXIkO3bs4NZbb231ce4cS6VJuEB0dDRAs08mJSUlxqeYqKgorFYrpaWlbbYpKSnBbr+c1m232yktLXVo0/R5SktLsVqtzT4xiWtoLHuXuro67rvvPv71r3/x/vvvM2DAAOOcxrL3CQkJITExkW9961v86le/IiAggDfeeAPQePYWu3fv5uuvvyY1NZXIyEgiIyM5fvw4Tz31FFdddRWgsezNBg8eTExMDAUFBYBnjqWCYRdISEggOjqanTt3Gseqq6vZu3evkf8yatQoAgICHNoUFhYaSeMAo0ePpqKigqysLKNNVlYWlZWV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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What happens when your dataset is small?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the CausalModel \n",
    "model_small = CausalModel(\n",
    "    data=earnings_interaction_train.sample(100),\n",
    "    treatment='took_a_course',\n",
    "    outcome='earnings',\n",
    "    effect_modifiers='python_proficiency',\n",
    "    graph=gml_string\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (S-Learner)\n",
    "estimate = model_small.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.SLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'overall_model': LGBMRegressor(n_estimators=500, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model_small.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.359195846106036$"
      ],
      "text/plain": [
       "0.35919584610603633"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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+vWYP38+d5IgIiKLqGzRP8nuShsQ6mHak+zMcQ5rnFMMYyHnIFEqlTprXvDYsWN4+OGHe7Q/+eST2Lp1K2pra7FhwwYUFhaioaEBERERmD9/Pp5//nkh5aG1tRXr1q1DXl4eWltbMWnSJGzevNlgZ4iGhgasWrUKn3zyCQAgNTUVOTk58PPzE/pUVVUhKysL//rXv+Dp6Yk5c+YgOzsbHh4eln0TemHrfBkyH86luHA+xcPWc1nZAjx2Gqhovd0W7al/1LOxwZ45zmGNc5rK2LHYei7JvGw9n1YPhql3tv6LQObDuRQXzqd42HouF30H7Otls6Ingox/1LM5zmGNc5rK2LHYei7JvGw9n3aVM0xERCRWV9p6b7/abt1zWOOcprKnsZDzYDBMRERkBaF9ZOCFuFv3HNY4p6nsaSzkPBgMExERWcHaaH3+a1fRnvp2QJ8vu+g74KFvgJ+dAZ4s1f950Xf6Y32dw9sFuHDTsJ85x2VN9jQWch52tc8wERGRWEV56QvBsiv0H/uHuN/eKaG3wrGuvr5xu4is8xwXW4DvVIBKC5xq1v/q2s8c47I2exoLOQ8Gw0RERFYS5dV7UVp2Rd+BMKA/ll2hf23nORZ9B3zV1Hc/c4zLFqw5FrFu43an92XN96G3a9kag2EiIiIb66twrKvuRWQsNhuc3lbjTVlZtzd3el/WfB/6utZbPq6w5d4gzBkmIiKysb4Kx7rqXkTGYrPB6W01vnNl3ZHd6X1Z833o61rbmgLMf7E7wGCYiIjIxnorHOuqtyIyFpsNjlhX1u/0vqz5PvR1rWsa2yYqME2CiIjIxroXjg2TAjod0Kztu4iMxWaDI9aV9Tu9L2u+D31dSybtMP/F7gCDYSIiIjtgSuGYPRW+OZq10fp81e6Pfnb0lfU7vS9rvg99XWvJsHoAPua/oJEYDBMREZHTEevK+p3elzXfh76u1V7NlWEiIiIiqxPryvqd3pc134ferlVunUv3iQV0REREROS0GAwTERERkdNiMExERERETovBMBERERE5LQbDREREROS0GAwTERERkdNiMExERERETovBMBERERE5LQbDREREROS0GAwTERERkdNiMExERERETovBMBERERE5LQbDREREROS0GAwTERERkdNiMExERERETovBMBERERE5LQbDREREROS0GAwTERERkdNiMExE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TEREREROi8EwERERETktBsNERERE5LQYDBMRERGR02IwTEREREROi8EwERERETktBsNERERE5LQYDBMRERGR02IwTEREREROi8EwERERETktBsNERERE5LQYDBMRERGR02IwTEREREROyy6D4atXr2LJkiWIjY1FcHAwJkyYgC+++EI4rtPpsHHjRowaNQohISF48MEHcfbsWYNztLW1YcWKFYiJiUFYWBjS09NRU1Nj0EepVCIjIwORkZGIjIxERkYGlEqlNW6RiIiIiOyA3QXDSqUSM2bMgE6nw1//+lcUFRUhJycHMplM6LNlyxbk5ubijTfewJEjRyCTyTBr1iw0NTUJfVavXo2DBw9i165dyM/PR1NTE9LS0qDRaIQ+CxcuRGlpKfbt24e8vDyUlpZi8eLFVr1fIiIiIrIdV1sPoLvf/e53CAkJwfbt24W2kSNHCn/W6XTYunUrXnzxRTz66KMAgK1bt0IulyMvLw8LFixAY2Mj3n//feTm5mLq1KkAgO3bt2PcuHE4evQoUlJSUFZWhs8++wwFBQWYMGECAOCtt95CamoqysvLIZfLrXfTRERERGQTdrcy/I9//AP33nsvFixYgLi4OPzkJz/BH//4R+h0OgBAZWUlamtrkZycLLzGy8sLEydORFFREQCgpKQEarXaoE94eDji4+OFPsXFxRg6dKgQCANAUlISvL29hT5EREREJG52tzJ88eJF7Nq1C8uWLcOLL76IM2fOYNWqVQCAjIwM1NbWAoBB2kTn11euXAEAKBQKSKVSBAQE9OijUCiEPgEBAZBIJMJxiUSCwMBAoU9vysvLB3+TNjg3WRfnUlw4n+LBuRQPzqW4WHI+B/q03+6CYa1Wi3vuuQevvvoqAGD8+PG4cOECdu7ciYyMDKFf1yAW0KdPdG/rrnuf3voPdB5LpU8wNUM8OJfiwvkUD86leHAuxcXW82l3aRLBwcGIj483aLvrrrtQXV0tHAfQY/W2rq5OWC0OCgqCRqNBfX19v33q6uqE9AtAHwjX19f3WHUmIiIiInGyu2A4KSkJ586dM2g7d+4cIiIiAABRUVEIDg5GYWGhcLy1tRUnTpwQ8n8TEhLg5uZm0KempgZlZWVCn8TERDQ3N6O4uFjoU1xcDJVKZZBHTERERETiZXdpEsuWLcP06dOxadMmzJ49G6WlpfjjH/+IdevW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\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## T-Learner: Together We Can Do More"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (T-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.TLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': [\n",
    "                LGBMRegressor(n_estimators=200, max_depth=10),\n",
    "                LGBMRegressor(n_estimators=200, max_depth=10)\n",
    "            ]\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12512.5589121351$"
      ],
      "text/plain": [
       "12512.558912135146"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0813365927834967$"
      ],
      "text/plain": [
       "0.0813365927834967"
      ]
     },
     "execution_count": 201,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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jSU+Pp4777yTO++8kz//+c8A2O12Vq1axbBhw+jXrx+jRo1iw4YNxmMbZ2s3bdrErbfeSr9+/fj1r3/NwIEDAbjtttuIjIxkx44dAOzevZvvfOc79O/fn8GDB/Pf//3fnD171rie3W7npZde4mtf+xoxMTFcc801PP300wBcf/31ANx8881ERkZyyy23NHs/jX16++23+c53vkO/fv246aab+Ne//sUXX3zBhAkTiIuLY9KkSRw6dMjhsb/+9a+54YYbsFgs3HDDDaxfv97h/IEDB7jllluIjY3l61//Ojk5OU2e//jx4/znf/4nSUlJJCUlMX36dPbv39+OEekYzQyLiIiIV+mZldXq+RCbjYAA183nnb8sSO2MkJAQ6urqAMjOzubdd9/l+eefJzU1lU8//ZSHH36YyMhIJk6caDzm6aefJjs7m5deegmz2czo0aMZOXIkr7/+OiNGjCAqKop///vfTJ06lSeeeIKXXnqJM2fOsGTJEr73ve/x+uuvA/DDH/6QdevW8aMf/YhvfetblJaWkp+fD8AHH3zAuHHjePvtt7n22mvp0aNHq/exYsUKnnnmGQYOHMh///d/88ADDxAdHc2yZcuwWCzMnz+fxYsXG8H9li1beOyxx3jmmWcYN24cf/vb33j00UeJiYkhMzMTm83GPffcQ0REBO+99x7V1dU88cQT1NbWXhqD8+e59dZbGT58OH/+85/p0aMHL730Erfffju5ubn07NnTJWPUHAXDIiIiIp302WefsWnTJsaMGUNVVRWrV6/mnXfeYdSoUQAMHDiQzz77jFdffdUhGJ47dy6333678feysjIAoqKiiI2NBeBnP/sZU6ZM4fvf/77R7oUXXmD06NGcOnWK0NBQfvGLX7BixQpmzpwJQHJyMsOHDwcgOjoagD59+hjXbM1//dd/MWHCBAC+973vMWPGDF5//XVGjx4NwAMPPMDjjz9utP/5z39OVlYWc+fOBSA1NZW8vDxWrVpFZmYmH374IV999RV79uwhISEBaAi4MzMzjWu8/fbb2O12fvGLXxhrBv/0pz8lNTWVbdu2MWXKlDb73VEKhkVEREQ64P3332fAgAHU19dTV1fHd77zHVauXElBQQE1NTVMmzbNYTOIuro6EhMTHa5xww03tPk8e/bs4cCBA/zhD38wjtntdgAOHjyI2WymtraWMWPGuOS+hgwZYvw5Jiam2WNVVVWcP3+enj17UlBQwN133+1wjW9+85v85S9/AaCgoIC4uDgjEAb4+te/7jC7v2fPHg4fPkx8fLzDdc6fP8/Bgwddcl8tUTAsIiIi0gGjRo1i1apVBAYG0r9/f4KCgoCG3FuAt956yyEABAgMdAy9wsLC2nwem83GrFmzeOihh5qc69+/P//+9787egvNarwPuLSz2+X9bjxms9maHLtc47HGwL01NpuNoUOH8qtf/arJuaioKCd73jEKhkVERMSrtJXDW1NTQ0hIiId607KePXuSnJzc5Hh6ejrBwcEcPXrUJbO1119/PV9++WWzz3X583300UekpKQ0Od+YI2y1Wjvdl5ae/5NPPjFSNAB27drF1VdfDcDVV1/N8ePHOXbsmDHz+9lnnzkE09dffz2bNm2iT58+REZGuqWfLdFqEiIiIiIu1Lt3b77//e/z5JNP8sYbb3DgwAHy8/P51a9+xWuvvdbu6z388MP885//ZOHChUbKRE5ODo888ojxfPPmzePpp5/mN7/5DQcPHuSzzz5j3bp1AFgsFkJDQ/nb3/5GSUkJFRUVLrxb+P73v8+GDRtYu3Yt+/fvZ82aNWzcuJEFCxYADUvQXXXVVcybN4/8/Hxyc3P5wQ9+4DDbfOeddxITE8N//Md/8PHHH3Po0CF27tzJ0qVL3b6ihIJhERERERdbunQpTzzxBD//+c8ZOXIkU6ZMYfPmzSQlJbX7Wtdeey1bt27lyJEjTJ48mW9/+9v88Ic/xGKxGG2eeuopHnnkEX784x8zfPhwZs2axfHjx4GGFIfnnnuON954g6uvvpr/+I//cNl9AkyePJmVK1fyi1/8ghEjRvDKK6/wwgsvGAVyAQEB/OY3v8FmszF+/HjmzZvHokWLCA4ONq7Rs2dPtm7dysCBA7nvvvsYPnw48+fPp7y83O0zxaby8vK2EznE7QoLC0lLS+vqbogLaCx9i8bTd2gsvVNFRQURERHteoy3pEmIa7hqPDvybwk0MywiIiIifkzBsIiIiIj4LQXDIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiHQpZ3YoE2lNZ/4NKRgWERGRLhMWFkZ5ebkCYumU8+fPd3h5Nm3HLCIiIl0mMDCQ3r17c/bsWacfc/bsWcLDw93YK/EkV4xnYGCgwyYe7Xpsp55ZREREpJMCAwPbtVlCSUkJCQkJbuyReFJXj6fSJERERETEbykYFhERERG/pWBYRERERPyWgmERERER8VsKhkVERETEbykYFhERERG/pWBYRERERPyWgmERERER8VsKhkVERETEbykYFhERERG/5dFg+Cc/+Qk333wzCQkJpKSkkJWVxRdffOHQxm63s2LFCq6++mr69evHLbfcwpdffunQpra2lscee4zk5GTi4uKYMWMGRUVFDm3Ky8uZO3cuiYmJJCYmMnfuXMrLyx3aHD16lKysLOLi4khOTubxxx/nwoULbrl3EREREfE+Hg2GP/74Y+6//362bdvG5s2bCQwM5Lvf/S5nzpwx2qxatYrVq1fz3HPP8cEHH2CxWJgyZQrnzp0z2ixZsoQtW7awbt06tm7dyrlz58jKysJqtRpt5syZQ35+Phs3bmTTpk3k5+fz4IMPGuetVitZWVlUVlaydetW1q1bx+bNm1m6dKlnXgwRERER6XKBnnyyd955x+Hva9asITExkU8++YTMzEzsdjsvv/wyjzzyCLfffjsAL7/8MmlpaWzatInZs2dTUVHBG2+8werVq7n55puN6wwdOpQPP/yQjIwMCgoKeP/998nJyWHEiBEAvPjii2RmZlJYWEhaWhoffPABX375JXv37iU+Ph6Ap59+mgULFvDkk08SHh7uwVdGRERERLpCl+YMV1ZWYrPZiIyMBODw4cMUFxczbtw4o01oaCijRo1i9+7dAOTl5VFXV+fQJj4+nvT0dKNNbm4uvXr1MgJhgJEjRxIWFubQJj093QiEATIyMqitrSUvL89dtywiIiIiXsSjM8NXeuKJJxg6dCjDhw8HoLi4GACLxeLQzmKxcOLECQBKSkowm81ER0c3aVNSUmK0iY6OxmQyGedNJhN9+/Z1aHPl80RHR2M2m402zSksLOzIrTrFndcWz9JY+haNp+/QWPoOjaVvced4pqWltXq+y4LhH/zgB3zyySfk5ORgNpsdzl0exEJDUd2Vx650ZZvm2jvTprXj0PYL2lGN6RvS/WksfYvG03doLH2HxtK3dPV4dkmaxJIlS3j77bfZvHkzAwcONI7HxsYCNJmZLS0tNWZxY2JisFqtlJWVtdqmtLQUu91unLfb7ZSVlTm0ufJ5ysrKsFqtTWaMRURERMQ3eTwYXrx4MZs2bWLz5s1cddVVDueSkpKI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jTz//PPGVz7QMFv85JNPsmnTJmpqahg9ejQvvPCCQ2XkmTNnWLx4MX/5y18AyMzMZOXKlUb1OzQsOr1o0SL+93//l5CQEKZNm0Z2djbBwcHuewF8SFtj+eabb/Jf//VfTc4vXryYJUuWABpLb9HaWD7xxBNcf/31zT5u9erVxtJAGkvv0dp4vvDCCzzwwAN89tlnnD59mj59+nDDDTfw6KOP8vWvf91oq/H0Dm39P3uloUOHOiytBhpLb9HaWP7kJz/h7rvvJj8/n4qKCmJjY7nppptYunSpwzh521gqGBYRERERv6WcYRERERHxWwqGRURERMRvKRgWEREREb+lYFhERERE/JaCYRERERHxWwqGRURERMRvKRgWEREREb+lHehERMQpeXl57Nq1i7Nnz3LdddeRmZnZ7DERke5EwbCIiAcdPHiQ3/3ud622mTx5MkOHDvVQj5xTVlbGtm3b+O53v0tcXBzBwcHNHnOFDz74gFOnTpGVleWS64mItEbBsIiIB8XHxztsMbt+/XoGDx7M8OHDjWOhoaFNHmez2QgI6LrMtsLCQiwWC+np6a0ec4Xjx4+TmJjo0muKiLRE2zGLiHSRmpoafvrTnzJlyhSHgPLs2bOsXr2a22+/nby8PIqKipgwYQLh4eFs3LiRRx99FLPZDEBFRQW/+MUvmDt3LtHR0cbjP/roI/bv34/dbicpKYkJEybQq1evFvvS2mPWrFnD6dOnjbZXXXUVpaWlTY7dcccdTj33+fPn+d///V8KCwupqakhKiqKjIwMEhMTeeGFF7BarUbbvn378sADD3T+xRYRaYFmhkVEusjJkyex2+3069fP4XhJSQkAn3zyCWPGjKFPnz4EBweTn59P3759jUC4sW1QUBB9+vQBoLy8nNdff53rrruOe+65B6vVyl//+le2bdvGHXfc0Ww/2nrMPffcw29+8xuuvfZarr/+eoKCgqivr29yzJnnPnv2LK+//jr9+/dnypQphIWFcfToUXr06EFAQAAzZ87ktdde49577yU8PNzhXkVE3EHBsIhIFykuLqZnz55EREQ0OR4YGMiUKVOIiopyOB4TE9OkbUxMDCaTCYCcnByuv/56xowZY7T59re/zTvvvNNiP9p6THBwMOXl5cTHxxszvGazucmxP/zhD20+d05ODjExMUydOtXo8+X3WFVVRXBwMP379zfOi4i4k4JhEZEucvLkSWJjY5scLykpISUlxSFIbDx+/fXXNzlmsViAhpSJgwcPcuzYMf7xj38YbWw2G0FBQc32wZnHnDp1CpvN5tDXK485c52Kigr279/Pfffd12Kge/LkSSwWiwJhEfEYBcMiIl2kuLiYq666qsnxkpISbrzxRodjdXV1nD59usnM8PHjxxk1apTxuODgYGbPnt3kmi0V3znzmOLiYiIiIggJCXHo++XHnL1OQEBAk7SQK/vT2nkREVdTMCwi0gUuXLjA6dOnm8wMX7hwgTNnzjQ5Xl5ejs1mM3KDAY4cOcK5c+eMADkgIIC6ujrCwsLo0aOHU/1w5jElJSVN+nPlMWeuYzabsdlsXLhwocVl2EpKSkhOTnaq7yIirqAd6EREukBbxXNXBp+hoaGYTCZOnjwJwIkTJ/jLX/6CyWQyguG4uDhCQkLYsmULJ0+e5MyZMxw8eJBt27Zhtze/cJAzj2ktV7k91+nfvz+hoaHk5ORw6tQpysrKyMvLo7i42LiOzWbj9OnTnDt3jpqamna/riIi7aWZYRGRLlBcXExISAiRkZEOx0+dOkWfPn2azK726tWLMWPGsHXrVt577z0SEhIYPHgwX3zxhdE2NDSU6dOns337dt566y1sNhuRkZEMHjy4xRzcth5jt9s5deoUI0aMMB7T3DFnnrtnz57ccccdbN++nddff91ImUhNTTWuM3r0aD788ENyc3MZNmwYkyZN6tTrLCLSFq0zLCIiIiJ+S2kSIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiIj4LQXDIiIiIuK3FAyLiIiIiN9SMCwiIiIifkvBsIiIiIj4LQXDIiIiIuK3/j/AUmQ2HS2lpgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## X-Learner: A Step Further"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (T-Learner)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.metalearners.XLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'models': [\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10),\n",
    "                LGBMRegressor(n_estimators=50, max_depth=10)\n",
    "            ]\n",
    "        },\n",
    "        'fit_params': {},\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12564.9199353707$"
      ],
      "text/plain": [
       "12564.91993537066"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.036324966995778$"
      ],
      "text/plain": [
       "0.03632496699577796"
      ]
     },
     "execution_count": 206,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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rpCvr2+bNksoKCggJiamE+9IulJ396fKJERERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNfq0jD885//nIkTJxITE0NCQgLJycl89dVXTm0cDgfr1q1j6NChDBgwgJtuuomvv/7aqU1lZSUrV64kPj6eqKgo5s2bR15enlOb4uJiFi9eTGxsLLGxsSxevJji4mKnNidOnCA5OZmoqCji4+N55JFHqKqq6pRnFxERERH306Vh+JNPPuHee+9l9+7d7Ny5E19fX374wx9y7tw5o82GDRvYuHEjzz77LB9++CEWi4VZs2Zx4cIFo83q1at599132bp1K7t27eLChQskJydjs9mMNosWLSIjI4Pt27ezY8cOMjIyuP/++43zNpuN5ORkSktL2bVrF1u3bmXnzp2sWbOmaz4MEREREel2vl35Zm+//bbTnzdv3kxsbCyffvopM2bMwOFwsGnTJh566CFuvfVWADZt2oTVamXHjh0sXLiQkpISXn/9dTZu3MjEiRON64wYMYKPPvqIyZMnk5mZyQcffEBqaiqjR48G4IUXXmDGjBlkZWVhtVr58MMP+frrrzl06BDR0dEAPPnkkyxbtozHH3+c4ODgLvxkRERERKQ7dGvNcGlpKXa7ndDQUACOHTtGfn4+kyZNMtoEBgYyduxYDhw4AEB6ejrV1dVObaKjo0lKSjLapKWl0adPHyMIA4wZM4agoCCnNklJSUYQBpg8eTKVlZWkp6d31iOLiIiIiBvp0pHhhh599FFGjBjBqFGjAMjPzwfAYrE4tbNYLJw6dQqAgoICzGYz4eHhjdoUFBQYbcLDwzGZTMZ5k8lE//79ndo0fJ/w8HDMZrPRpilZWVnteVSXdOa1pWupLz2L+tNzqC89h/rSs3Rmf1qt1hbPd1sY/slPfsKnn35KamoqZrPZ6Vz9EAu1k+oaHmuoYZum2rvSpqXj0PoH2l515RvS86kvPYv603OoLz2H+tKzdHd/dkuZxOrVq3nrrbfYuXMngwcPNo5HRkYCNBqZLSwsNEZxIyIisNlsFBUVtdimsLAQh8NhnHc4HBQVFTm1afg+RUVF2Gy2RiPGIiIiIuKZujwMr1q1ih07drBz506uuuoqp3NxcXFERkayZ88e41hFRQX79+836n9HjhyJn5+fU5u8vDwyMzONNqNGjaK0tJS0tDSjTVpaGmVlZU5tMjMznZZk27NnD/7+/owcObLDn1tERERE3E+XlkmsWLGCbdu28Zvf/IbQ0FCjRjgoKIg+ffpgMplYunQpzz//PFarlcTERJ577jmCgoKYM2cOACEhIcyfP5+1a9disVgICwtjzZo1DB8+nAkTJgCQlJTElClTWL58ORs2bMDhcLB8+XKmTZtmDMNPmjSJYcOGsWTJElJSUjh37hxr165lwYIFWklCRERExEt0aRh++eWXAYxl0+qsWrWK1atXA/Dggw9SXl7OypUrKS4u5vrrr+ftt9+mb9++Rvunn34as9nMwoULqaioYNy4cbz00ktOtcdbtmxh1apVzJ49G4AZM2awfv1647zZbGbbtm2sWLGC6dOnExAQwJw5c0hJSem05xcRERER92IqLi52tN5MOlt3F49Lx1Ffehb1p+dQX3oO9aVn6e7+7NZ1hkVEREREupPCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrdXkY3rdvH/PmzWPYsGGEhobyxhtvOJ0vLS1l5cqVXH311QwYMIDvfOc7bNy40alNZWUlK1euJD4+nqioKObNm0deXp5Tm+LiYhYvXkxsbCyxsbEsXryY4uJipzYnTpwgOTmZqKgo4uPjeeSRR6iqquqU5xYRERER99PlYbisrIyrr76aZ555hsDAwEbn16xZw3vvvcdLL73EgQMHePjhh3nyySf53e9+Z7RZvXo17777Llu3bmXXrl1cuHCB5ORkbDab0WbRokVkZGSwfft2duzYQUZGBvfff79x3mazkZycTGlpKbt27WLr1q3s3LmTNWvWdO4HICIiIiJuw7er33Dq1KlMnToVgAceeKDR+bS0NJKTkxk3bhwAcXFxvP7663z++efMmzePkpISXn/9dTZu3MjEiRMB2Lx5MyNGjOCjjz5i8uTJZGZm8sEHH5Camsro0aMBeOGFF5gxYwZZWVlYrVY+/PBDvv76aw4dOkR0dDQATz75JMuWLePxxx8nODi4Kz4OEREREelGblczPGbMGFJTU8nNzQXgwIED/POf/2Ty5MkApKenU11dzaRJk4zXREdHk5SUxIEDB4DaQN2nTx8jCNddNygoyKlNUlKSEYQBJk+eTGVlJenp6Z39mCIiIiLiBrp8ZLg1zz77LMuXL+eaa67B17f29tavX8/06dMBKCgowGw2Ex4e7vQ6i8VCQUGB0SY8PByTyWScN5lM9O/f36mNxWJxukZ4eDhms9lo05SsrKwrf8huuLZ0LfWlZ1F/eg71pedQX3qWzuxPq9Xa4nm3C8ObN2/mwIEDvPnmm8TExPC3v/2Nxx9/nNjYWKZMmdLs6xwOR6Pw2542LR2H1j/Q9qor35CeT33pWdSfnkN96TnUl56lu/vTrcJweXk5Tz31FK+88gozZswA4JprruHQoUO8+OKLTJkyhYiICGw2G0VFRfTv3994bWFhIWPHjgUgIiKCwsJCp/DrcDgoKioyRoMjIiKMkok6RUVF2Gy2RiPGIiIiIuKZ3KpmuLq6murqasxms9Nxs9mM3W4HYOTIkfj5+bFnzx7jfF5eHpmZmUaN8KhRoygtLSUtLc1ok5aWRllZmVObzMxMpyXZ9uzZg7+/PyNHjuysRxQRERERN9LlI8OlpaXk5OQAYLfbyc3NJSMjg7CwMGJiYvje977Hk08+SVBQEDExMezbt4/f/e53PPnkkwCEhIQwf/581q5di8ViISwsjDVr1jB8+HAmTJgAQFJSElOmTGH58uVs2LABh8PB8uXLmTZtmjEMP2nSJIYNG8aSJUtISUnh3LlzrF27lgULFmglCREREREv0eUjwwcPHmTcuHGMGzeO8vJy1q1bx7hx43j66acB+N///V+uu+46Fi9ezJgxY/jFL37BmjVrWLx4sXGNp59+mpkzZ7Jw4UKmT59OUFAQv/vd75xGlLds2cI111zD7Nmzue2227jmmmvYvHmzcd5sNrNt2zZ69+7N9OnTWbhwITNnziQlJaXrPgwRERER6Vam4uJiR3ffhHR/8bh0HPWlZ1F/eg71pedQX3qW7u5Pt6oZFhERERHpSgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa/V5WF43759zJs3j2HDhhEaGsobb7zRqM3hw4e56667iI2NZeDAgYwbN47MzEzjfGVlJStXriQ+Pp6oqCjmzZtHXl6e0zWKi4tZvHgxsbGxxMbGsnjxYoqLi53anDhxguTkZKKiooiPj+eRRx6hqqqqU55bRERERNxPl4fhsrIyrr76ap555hkCAwMbnT969CjTpk0jLi6OnTt3sn//fh577DGCgoKMNqtXr+bdd99l69at7Nq1iwsXLpCcnIzNZjPaLFq0iIyMDLZv386OHTvIyMjg/vvvN87bbDaSk5MpLS1l165dbN26lZ07d7JmzZrO/QBERERExG34dvUbTp06lalTpwLwwAMPNDqfkpLCpEmT+OlPf2ocGzx4sPH7kpISXn/9dTZu3MjEiRMB2Lx5MyNGjOCjjz5i8uTJZGZm8sEHH5Camsro0aMBeOGFF5gxYwZZWVlYrVY+/PBDvv76aw4dOkR0dDQATz75JMuWLePxxx8nODi4sz4CEREREXETblUzbLfbSU1NJSkpidtuu42EhAQmTpzI22+/bbRJT0+nurqaSZMmGceio6NJSkriwIEDAKSlpdGnTx8jCAOMGTOGoKAgpzZJSUlGEAaYPHkylZWVpKend/KTioiIiIg76PKR4ZacOXOG0tJSfv7zn/OTn/yEJ554gr/+9a/cd9999O7dm+nTp1NQUIDZbCY8PNzptRaLhYKCAgAKCgoI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GRncf//9Xfq8IiIiItJ93K5mOC0tjenTpzNjxgwA4uLimDFjBp9//jlQOyq8adMmHnroIW699VYANm3ahNVqZceOHSxcuJCSkhJef/11Nm7cyMSJEwHYvHkzI0aM4KOPPmLy5MlkZmbywQcfkJqayujRowF44YUXmDFjBllZWVit1m54ehERERHpSm43MjxmzBg++eQT/vWvfwHwzTffsHfvXv7f//t/ABw7doz8/HwmTZpkvCYwMJCxY8dy4MABANLT06murnZqEx0dTVJSktEmLS2NPn36GEG47r2DgoKMNiIiIiLi2dxuZPihhx6itLSU0aNHYzabqampYcWKFSxatAiA/Px8ACwWi9PrLBYLp06dAqCgoACz2Ux4eHijNgUFBUab8PBwTCaTcd5kMtG/f3+jTVOysrKu/CG74drStdSXnkX96TnUl55DfelZOrM/W/tpv9uF4bfffpvf/e53vPzyywwdOpRDhw7x6KOPEhsby4IFC4x29UMs1JZPNDzWUMM2TbVv7TqdVT6h0gzPob70LOpPz6G+9BzqS8/S3f3pdmUSa9eu5Uc/+hG33XYbw4cPZ968efzHf/wHL7zwAgCRkZEAjUZvCwsLjdHiiIgIbDYbRUVFLbYpLCzE4XAY5x0OB0VFRY1GnUVERETEM7ldGL548SJms9npmNlsxm63A7UT6iIjI9mzZ49xvqKigv379xv1vyNHjsTPz8+pTV5eHpmZmUabUaNGUVpaSlpamtEmLS2NsrIypzpiEREREfFcblcmMX36dH7xi18QFxfH0KFDycjIYOPGjcybNw+oLW1YunQpzz//PFarlcTERJ577jmCgoKYM2cOACEhIcyfP5+1a9disVgICwtjzZo1DB8+nAkTJgCQlJTElClTWL58ORs2bMDhcLB8+XKmTZumH72IiIiIeAm3C8Pr16/npz/9KQ8//DCFhYVERkZy991388gjjxhtHnzwQcrLy1m5ciXFxcVcf/31vP322/Tt29do8/TTT2M2m1m4cCEVFRWMGzeOl156yWnUecuWLaxatYrZs2cDMGPGDNavX991DysiIiIi3cpUXFzsaL2ZdLbuLh6XjqO+9CzqT8+hvvQc6kvP0t396XY1wyIiIiIiXUVhWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4LYVhEREREfFaCsMiIiIi4rUUhkVERETEaykMi4iIiIjXUhgWEREREa+lMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK13DIMnz59miVLlpCQkEBkZCSjR4/mk08+Mc47HA7WrVvH0KFDGTBgADfddBNff/210zUqKytZuXIl8fHxREVFMW/ePPLy8pzaFBcXs3jxYmJjY4mNjWXx4sUUFxd3xSOKiIiIiBtwuzBcXFzMtGnTcDgc/N///R8HDhxg/fr1WCwWo82GDRvYuHEjzz77LB9++CEWi4VZs2Zx4cIFo83q1at599132bp1K7t27eLChQskJydjs9mMNosWLSIjI4Pt27ezY8cOMjIyuP/++7v0eUVERESk+/h29w009N///d8MGDCAzZs3G8cGDx5s/N7hcLBp0yYeeughbr31VgA2bdqE1Wplx44dLFy4kJKSEl5//XU2btzIxIkTAdi8eTMjRozgo48+YvLkyWRmZvLBBx+QmprK6NGjAXjhhReYMWMGWVlZWK3WrntoEREREekWbjcy/Kc//Ynrr7+ehQsXkpiYyPe//33+53/+B4fDAcCxY8fIz89n0qRJxmsCAwMZO3YsBw4cACA9PZ3q6mqnNtHR0SQlJRlt0tLS6NOnjxGEAcaMGUNQUJDRRkREREQ8m9uNDB89epStW7fywAMP8NBDD3Ho0CFWrVoFwOLFi8nPzwdwKpuo+/OpU6cAKCgowGw2Ex4e3qhNQUGB0SY8PByTyWScN5lM9O/f32jTlKysrCt/yG64tnQt9aVnUX96DvWl51BfepbO7M/WftrvdmHYbrdz3XXX8cQTTwBw7bXXkpOTw8svv8zixYuNdvVDLNSWTzQ81lDDNk21b+06nVU+odIMz6G+9CzqT8+hvvQc6kvP0t396XZlEpGRkSQlJTkdu+qqq8jNzTXOA41GbwsLC43R4oiICGw2G0VFRS22KSwsNMovoDYIFxUVNRp1FhERERHP5HZheMyYMRw+fNjp2OHDh4mJiQEgLi6OyMhI9uzZY5yvqKhg//79Rv3vyJEj8fPzc2qTl5dHZmam0WbUqFGUlpaSlpZmtElLS6OsrMypjlhEREREPJfblUk88MADTJ06leeee47Zs2eTkZHB//zP//D4448DtaUNS5cu5fnnn8dqtZKYmMhzzz1HUFAQc+bMASAkJIT58+ezdu1aLBYLYWFhrFmzhuHDhzNhwgQAkpKSmDJlCsuXL2fDhg04HA6WL1/OtGnT9KMXERERES/hdmH429/+Nm+88QZPPfUUP/vZz4iOjuYnP/kJixYtMto8+OCDlJeXs3LlSoqLi7n++ut5++236du3r9Hm6aefxmw2s3DhQioqKhg3bhwvvfQSZrPZaLNlyxZWrVrF7NmzAZgxYwbr16/vuocVERERkW5lKi4udrTeTDpbdxePS8dRX3oW9afnUF96DvWlZ+nu/nS7mmERERERka6iMCwiIiIiXkthWERERES8lsKwiIiIiHgthWERERER8VoKwyIiIiLitRSGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI1zIVFxc7uvsmRERERES6g0aGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwnA77du3j3nz5jFs2DBCQ0N54403nM47HA7WrVvH0KFDGTBgADfddBNff/21U5vKykpWrlxJfHw8UVFRzJs3j7y8PKc2xcXFLF68mNjYWGJjY1m8eDHFxcVObU6cOEFycjJRUVHEx8fzyCOPUFVV1SnP7Yla68udO3cye/ZsEhISCA0NZe/evY2uob50Dy31ZXV1NU888QRjx44lKiqKpKQkFi1axIkTJ5yuob50H63920xJSeG73/0uUVFRxMXFccstt3DgwAGnNupP99BaX9b34IMPEhoayosvvuh0XH3pHlrry6VLlxIaGur0a8qUKU5t3K0vFYbbqaysjKuvvppnnnmGwMDARuc3bNjAxo0befbZZ/nwww+xWCzMmjWLCxcuGG1Wr17Nu+++y9atW9m1axcXLlwgOTkZm81mtFm0aBEZGRls376dHTt2kJGRwf3332+ct9lsJCcnU1payq5du9i6dSs7d+5kzZo1nfsBeJDW+vLixYuMGjWKn/70p81eQ33pHlrqy4sXL/LFF1+wYsUKPv74Y37729+Sl5fHnDlzqKmpMdqpL91Ha/82rVYrzz33HH/7299ITU0lLi6OOXPmUFBQYLRRf7qH1vqyzjvvvMM//vEPBg4c2Oic+tI9uNKXEyZMIDMz0/i1fft2p/Pu1pdaZ7gDDBo0iPXr13PnnXcCtaPCQ4cO5b777mPFihUAlJeXY7Va+a//+i8WLlxISUkJiYmJbNy4kblz5wKQm5vLiBEj2LFjB5MnTyYzM5PRo0eTmprKmDFjANi/fz8zZszgs88+w2q18v777zN37lwOHTpEdHQ0ANu2bWPZsmVkZWURHBzcDZ9Iz9WwL+srKioiISGBd999lxtvvNE4rr50Ty31ZZ1vvvmGMWPGsG/fPoYPH66+dGOu9Of58+eJjY3lrbfeYvLkyepPN9VcXx4/fpxp06bxhz/8gTlz5rB48WJ+/OMfA/o6666a6sulS5dy9uxZtm3b1uRr3LEvNTLcCY4dO0Z+fj6TJk0yjgUGBjJ27FjjR3jp6elUV1c7tYmOjiYpKclok5aWRp8+fRg9erTRZsyYMQQFBTm1SUpKMv4iAEyePJnKykrS09M78zHlEvVlz1X3k5rQ0FBAfdmTVVVV8eqrrxIcHMyIESMA9WdPUlNTw6JFi1ixYgVJSUmNzqsve5b9+/eTmJjI9ddfz7Jlyzhz5oxxzh370rc9Dykty8/PB8BisTgdt1gsnDp1CoCCggLMZjPh4eGN2tT9iK+goIDw8HBMJpNx3mQy0b9/f6c2Dd8nPDwcs9ns9KNC6Tzqy56pqqqKxx57jOnTpzNo0CBAfdkTpaamcu+993Lx4kUGDBjA73//eyIiIgD1Z0+ybt06wsLCuPfee5s8r77sOaZMmcLNN99MXFwcx48fJyUlhVtuuYWPPvoIf39/t+xLheFOVL8TobZ8ouGxhhq2aaq9K21aOi5dQ33pvmpqali8eDElJSW8+eabrbZXX7qvG2+8kb1791JUVMSrr77KPffcw/vvv8+AAQOafY3607188skn/Pa3v21ycnJr1Jfu57bbbjN+P3z4cEaOHMmIESPYvXs3t9xyS7Ov686+VJlEJ4iMjARo9J1JYWGh8V1MREQENpuNoqKiFtsUFhbicFwu63Y4HBQVFTm1afg+RUVF2Gy2Rt8xSedQX/YsNTU13HvvvXz55Ze888479OvXzzinvux5goKCiI+P57vf/S6//OUv8fPz47XXXgPUnz3F3r17OX36NElJSYSHhxMeHs6JEyd44oknuPrqqwH1ZU82cOBAoqKiyMnJAdyzLxWGO0FcXByRkZHs2bPHOFZRUcH+/fuN+peRI0fi5+fn1CYvL88oGgcYNWoUpaWlpKWlGW3S0tIoKytzapOZmem0JMmePXvw9/dn5MiRnfmYcon6sueorq5m4cKFfPnll7z77rvGN6511Jc9n91uN5ZWUn/2DIsWLWLfvn3s3bvX+DVw4EAeeOAB3nnnHUB92ZMVFRVx6tQp4+utO/alyiTaqbS01Pgux263k5ubS0ZGBmFhYcTExLB06VKef/55rFYriYmJPPfccwQFBTFnzhwAQkJCmD9/PmvXrsVisRAWFsaaNWsYPnw4EyZMACApKYkpU6awfPlyNmzYgMPhYPny5UybNg2r1QrApEmTGDZsGEuWLCElJYVz586xdu1aFixYoFmxLmqtL8+dO8eJEycoKSkB4MiRI4SEhBAZGUlkZKT60o201JcDBw7k7rvv5uDBg7z55puYTCajvj84OJjAwED1pZtpqT9DQkL47//+b6ZPn05kZCRFRUVs2bKFkydP8sMf/hDQ11l30trX2YYjeb6+vkRGRhp9oL50Hy31ZVhYGM888wy33HILkZGRHD9+nKeeegqLxcLMmTMB9+xLLa3WTnv37uXmm29udPyOO+5g06ZNOBwOnnnmGV555RWKi4u5/vrree6554wf+UDtaPHjjz/Ojh07qKioYNy4cTz//PNOMyPPnTvHqlWr+POf/wzAjBkzWL9+vTH7HWoXnV6xYgV//etfCQgIYM6cOaSkpODv7995H4AHaa0v33jjDf7jP/6j0flVq1axevVqQH3pLlrqy0cffZRrr722yddt3LjRWBpIfek+WurP559/nvvuu4/PP/+cs2fP0q9fP6677joefvhhvvOd7xht1Z/uobWvsw2NGDHCaWk1UF+6i5b68uc//zl33nknGRkZlJSUEBkZyY033siaNWuc+snd+lJhWERERES8lmqGRURERMRrKQyLiIiIiNdSGBYRERERr6UwLCIiIiJeS2FYRERERLyWwrCIiIiIeC2FYRERERHxWtqBTkREXJKens7+/fs5f/483/rWt5gxY0aTx0REehKFYRGRLnTkyBF+97vftdhm5syZjBgxoovuyDVFRUXs3r2bH/7wh0RFReHv79/ksY7w4YcfcubMGZKTkzvkeiIiLVEYFhHpQtHR0U5bzL766qsMGzaMUaNGGccCAwMbvc5ut+Pj032VbVlZWVgsFpKSklo81hFOnjxJbGxsh15TRKQ52o5ZRKSbVFRU8Itf/IJZs2Y5Bcrz58+zceNGbr31VtLT08nLy2Pq1KkEBwezfft2Hn74YcxmMwAlJSX86le/YvHixYSHhxuv//jjj8nOzsbhcBAXF8fUqVPp06dPs/fS0ms2b97M2bNnjbZXXXUVhYWFjY7ddtttLr33xYsX+etf/0pWVhYVFRWEhYUxefJkYmNjef7557HZbEbb/v37c9999135hy0i0gyNDIuIdJPTp0/jcDgYMGCA0/GCggIAPv30U8aPH0+/fv3w9/cnIyOD/v37G0G4rq2fnx/9+vUDoLi4mNdee41vfetb3HXXXdhsNt5//312797Nbbfd1uR9tPaau+66i9/85jdcc801XHvttfj5+VFTU9PomCvvff78eV577TUGDhzIrFmzCAoK4sSJE/Tq1QsfHx/mz5/PK6+8wt13301wcLDTs4qIdAaFYRGRbpKfn0/v3r0JCQlpdNzX15dZs2YRFhbmdDwiIqJR24iICEwmEwCpqalce+21jB8/3mjz/e9/n7fffrvZ+2jtNf7+/hQXFxMdHW2M8JrN5kbHfv/737f63qmpqURERDB79mzjnus/Y1lZGf7+/gwcONA4LyLSmRSGRUS6yenTp4mMjGx0vKCggISEBKeQWHf82muvbXTMYrEAtSUTR44cITc3l7///e9GG7vdjp+fX5P34Mprzpw5g91ud7rXhsdcuU5JSQnZ2dncc889zQbd06dPY7FYFIRFpMsoDIuIdJP8/HyuuuqqRscLCgq4/vrrnY5VV1dz9uzZRiPDJ0+eZOzYscbr/P39WbhwYaNrNjf5zpXX5OfnExISQkBAgNO91z/m6nV8fHwalYU0vJ+WzouIdDSFYRGRblBVVcXZs2cbjQxXVVVx7ty5RseLi4ux2+1GbTDA8ePHuXDhghGQfXx8qK6uJigoiF69erl0H668pqCgoNH9NDzmynXMZjN2u52qqqpml2ErKCggPj7epXsXEekI2oFORKQbtDZ5rmH4DAwMxGQycfr0aQBOnTrFn//8Z0wmkxGGo6KiCAgI4N133+X06dOcO3eOI0eOsHv3bhyOphcOcuU1LdUqt+U6AwcOJDAwkNTUVM6cOUNRURHp6enk5+cb17Hb7Zw9e5YLFy5QUVHR5s9VRKStNDIsItIN8vPzCQgIIDQ01On4mTNn6NevX6PR1T59+jB+/Hh27drFe++9R0xMDMOGDeOrr74y2gYGBjJ37lz27NnDm2++id1uJzQ0lGHDhjVbg9vaaxwOB2fOnGH06NHGa5o65sp79+7dm9tuu409e/bw2muvGSUTiYmJxnXGjRvHRx99RFpaGiNHjmT69OlX9DmLiLRG6wyLiIiIiNdSmYSIiIiIeC2FYRERERHxWgrDIiIiIuK1FIZFRERExGspDIuIiIiI11IYFhERERGvpTAsIiIiIl5LYVhEREREvJbCsIiIiIh4rf8fTzVnzZmZPKcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Meta-Learners on experiental data (Kevin Hillstrom)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read in the data\n",
    "hillstrom_clean = pd.read_csv(r'./data/hillstrom_clean.csv')\n",
    "\n",
    "# Read in labels mapping\n",
    "with open(r'./data/hillstrom_clean_label_mapping.json', 'r') as f:\n",
    "    hillstrom_labels_mapping = json.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>recency</th>\n",
       "      <th>history</th>\n",
       "      <th>mens</th>\n",
       "      <th>womens</th>\n",
       "      <th>newbie</th>\n",
       "      <th>visit</th>\n",
       "      <th>conversion</th>\n",
       "      <th>spend</th>\n",
       "      <th>zip_code__rural</th>\n",
       "      <th>zip_code__surburban</th>\n",
       "      <th>zip_code__urban</th>\n",
       "      <th>channel__multichannel</th>\n",
       "      <th>channel__phone</th>\n",
       "      <th>channel__web</th>\n",
       "      <th>treatment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10</td>\n",
       "      <td>142.44</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6</td>\n",
       "      <td>329.08</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[1, 0, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7</td>\n",
       "      <td>180.65</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>675.83</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 0, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>45.34</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[0, 1, 0]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   recency  history  mens  womens  newbie  visit  conversion  spend  \\\n",
       "0       10   142.44     1       0       0      0           0    0.0   \n",
       "1        6   329.08     1       1       1      0           0    0.0   \n",
       "2        7   180.65     0       1       1      0           0    0.0   \n",
       "3        9   675.83     1       0       1      0           0    0.0   \n",
       "4        2    45.34     1       0       0      0           0    0.0   \n",
       "\n",
       "   zip_code__rural  zip_code__surburban  zip_code__urban  \\\n",
       "0                0                    1                0   \n",
       "1                1                    0                0   \n",
       "2                0                    1                0   \n",
       "3                1                    0                0   \n",
       "4                0                    0                1   \n",
       "\n",
       "   channel__multichannel  channel__phone  channel__web  treatment  \n",
       "0                      0               1             0  [0, 1, 0]  \n",
       "1                      0               0             1  [1, 0, 0]  \n",
       "2                      0               0             1  [0, 1, 0]  \n",
       "3                      0               0             1  [0, 0, 1]  \n",
       "4                      0               0             1  [0, 1, 0]  "
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hillstrom_clean.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['recency', 'history', 'mens', 'womens', 'newbie', 'visit', 'conversion',\n",
       "       'spend', 'zip_code__rural', 'zip_code__surburban', 'zip_code__urban',\n",
       "       'channel__multichannel', 'channel__phone', 'channel__web', 'treatment'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 179,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hillstrom_clean.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Doubly Robust Methods: Let’s Get More!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (Doubly robust)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.dr.DRLearner',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'model_propensity': LogisticRegression(),\n",
    "            'model_regression': LGBMRegressor(n_estimators=1000, max_depth=10)\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1235,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12579.1931920721$"
      ],
      "text/plain": [
       "12579.193192072085"
      ]
     },
     "execution_count": 1235,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1236,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1237,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.00554385331575871$"
      ],
      "text/plain": [
       "0.005543853315758708"
      ]
     },
     "execution_count": 1237,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1238,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAHQCAYAAABEJmfqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABquklEQVR4nO3de1xVZaL/8c9mg4AoF2GDImChW0RFuSSaTd5wVE63yTxip9FyMrRmxvKkmWPZrzlOllNTno5jTnmmpmkaR2vKZhytJuyYY1ICYqm0zTsqCLpRUG57798f6MotpojcZH/frxevcq1nrfWs/Xj58vBcTHa73YWIiIiIiAfyau0KiIiIiIi0FoVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjHUhgWEREREY+lMCwiIiIiHqtFw/BvfvMbRo4cSXR0ND179iQjI4MdO3YY52tqanjqqacYOnQokZGRxMXFMW3aNA4ePOh2n6qqKubMmUNsbCyRkZFMmjSJwsJCtzJ2u53MzExiYmKIiYkhMzMTu93uVubgwYNkZGQQGRlJbGwsjz32GNXV1c32/iIiIiLStrRoGP7ss8+4//77Wb9+PWvWrMHb25sf/ehHnDhxAoDTp0+zbds2Zs+ezaeffsqf/vQnCgsLmTBhArW1tcZ95s2bxwcffMCKFStYu3Ytp06dIiMjA4fDYZSZNm0a+fn5rFq1itWrV5Ofn8/06dON8w6Hg4yMDMrLy1m7di0rVqxgzZo1zJ8/v+U+EBERERFpVabW3IGuvLycmJgY3nrrLdLT0y9aZteuXQwZMoRNmzbRr18/ysrK6NWrF0uXLmXixIkAHDp0iISEBFavXk1aWhoFBQUMHjyYdevWMWTIEAA2b95Meno6X3zxBVarlY8++oiJEyeyfft2oqKiAFi5ciUzZ87EZrMRGBjYMh+CiIiIiLSaVh0zXF5ejtPpJDg4+HvLnDp1CsAok5eXR01NDaNGjTLKREVFERcXx5YtWwDIzs6mU6dODB482CgzZMgQAgIC3MrExcUZQRggLS2Nqqoq8vLymugNRURERKQta9Uw/Pjjj5OQkEBqaupFz1dXV/PEE08wbtw4unfvDkBxcTFms5nQ0FC3shaLheLiYqNMaGgoJpPJOG8ymQgLC3MrY7FY3O4RGhqK2Ww2yoiIiIhI++bdWg/+xS9+weeff866deswm831ztfW1pKZmUlZWRlvv/32Ze/ncrnqhd/GlLnUcRERERFpX1qlZ3jevHm88847rFmzhuuuu67e+draWu6//36+/vpr3n//fbp06WKcCw8Px+FwUFpa6nZNSUmJ0dMbHh5OSUkJLtd3w6FdLhelpaVuZS7sAS4tLcXhcNTrMW4JNputxZ8pzUNt2b6oPdsPtWX7obZsX1q7PVs8DM+dO5fVq1ezZs0aevfuXe98TU0NU6dO5euvv+aDDz4gIiLC7XxiYiI+Pj5kZWUZxwoLC41JcwCpqamUl5eTnZ1tlMnOzqaiosKtTEFBgduSbFlZWfj6+pKYmNiUrywiIiIibVSLDpOYPXs2K1eu5I9//CPBwcEUFRUBEBAQQKdOnaitreXee+8lNzeXt99+G5PJZJQJDAzE39+foKAgJk+ezIIFC7BYLISEhDB//nz69evHiBEjAIiLi2P06NHMmjWLJUuW4HK5mDVrFmPHjsVqtQIwatQo4uPjmTFjBgsXLuTEiRMsWLCAKVOmaCUJEREREQ/RomH4tddeA+COO+5wOz537lzmzZtHYWEha9euBTCC7TlLly7lnnvuAeCZZ57BbDYzdepUKisrGTZsGK+88orb2ONXX32VuXPnMn78eADS09NZvHixcd5sNrNy5Upmz57NuHHj8PPzY8KECSxcuLDJ31tERERE2qZWXWdYvmOz2Yxea7m2qS3bF7Vn+6G2bD/Ulu1La7dnq60mISIiInI1amtrqaioaO1qyFXy8/OjrKzsqu7h7e1NQEBA4669qieLiIiItILa2lpOnTpFcHCwlkS9xvn6+uLn53dV96ioqKCqqgpfX98rvrZVN90QERERaYyKigoFYTF07NiRysrKRl2rMCwiIiLXJAVhOedqfi8oDIuIiIiIx1IYFhERERGPpTAsIiIiIs0mISGBl19+ubWr8b0UhkVERERayIMPPkhwcHC9r9GjR7d21QwPPvggGRkZV3zdokWLuPHGG+sdz8rK4v7772+KqjULLa0mIiIi0oJGjBjB8uXL3Y516NChlWrT/MLCwlq7CpeknmERERGRFuTr60tERITbV0hICJ999hlhYWFs3LjRKPu///u/REdHs2/fPgBuueUWZs2axdy5c+nRowc9evTgySefxOl0GtdUV1fz1FNP0bdvXyIjIxk5ciT//Oc/3erwzTffMGnSJGJiYujevTs//OEP+frrr1m0aBFvv/0269evN3qtz9Xn//2//8cNN9xA165dSUhIYMGCBcZyZm+99RbPPfccO3fuNK576623gPrDJA4ePMg999xDVFQUUVFR/OQnP6GwsNA4f66H+Z133iExMZGoqCj+4z/+g9LS0qZtiLPUMywiIiLtRlBwcIs+r8xub7J7/eAHP2DmzJnMmDGDzz77jGPHjvHEE0/w/PPPc9111xnlVq1axd13381HH33E119/zcMPP0xERAQ/+9nPAPjpT3/K3r17efXVV+nevTsffvghkyZN4pNPPiEhIYEjR44wbtw4Bg8ezF//+leCgoLYunUrDoeDn//853zzzTecOHHC6L0OCQkB6tby/Z//+R+6detGQUEB//mf/0mHDh144oknGD9+PDt37mT9+vX87W9/AyAwMLDeO7pcLu655x78/PxYs2YNJpOJRx99lHvuuYesrCxjibQDBw7w7rvv8sc//pHTp0/zk5/8hP/6r//ipZdearLP+xyFYREREZEW9PHHH9O9e3e3Y9OmTePpp59m3rx5ZGVl8fOf/5wDBw4wduxY/uM//sOtbEREBIsXL8ZkMtG7d292797Nb3/7W372s5+xd+9eVq9eTX5+PtHR0QBkZmayYcMGXn/9dV544QVee+01OnbsyBtvvGEMz+jVq5dxfz8/P6P3+nyPPfaY8f89evTgP//zP3n55Zd54okn8Pf3JyAgAG9v73rXnW/Dhg189dVX5Obm0qNHDwCWLVvGkCFD+PTTTxkxYgRQt8Pgb3/7W4KCggC47777jJ7mpqYwLCIiItKChg4dypIlS9yOnQt9Pj4+vPbaawwZMgSLxcKaNWvqXX/DDTe4bTKRmprKr371K06ePMm2bdtwuVwMGTLE7ZqqqiqGDRsGQH5+PjfeeOMVj1N+//33WbZsGXv27KGiogKHw4HD4biiexQUFNCtWzcjCENdsO7WrRu7du0ywnB0dLTxmQB07dqVkpKSK3pWQykMi4iIiLSgjh07Ehsb+73nv/jiC5xOJ2VlZZSWlhJ8BUM/nE4nJpOJTz75BB8fH7dzfn5+QN1QhSv1xRdf8JOf/IS5c+fyzDPPEBQUxNq1a3nyySev6D4ul+t7d4s7//iFdTeZTG7jopuSwrCIiIi0G005hrc17N+/n8cee4znn3+ejz/+mAceeIAPP/wQb+/vItvWrVvdQuUXX3xBt27dCAwMZMCAAbhcLoqKioye4AsNHDiQlStXUl1dfdHe4Q4dOtTr8f3888/p1q2b21CJgwcPXva6C/Xp04fDhw+zf/9+o3d4//79HDlyhD59+lzy2uai1SREREREWlBVVRVFRUVuXyUlJTgcDqZPn87QoUOZOnUqL7/8MocPH+bZZ591u/7o0aM8/vjj2Gw23n//ff77v/+bhx56CKgb+ztx4kQeeugh3n//ffbt20dubi4vv/yyMeTi/vvvp6Kigvvuu4+cnBz27NljjDMGiImJYefOndhsNkpLS6mpqaFXr14cOXKEv/zlL+zbt48VK1bwzjvvuNUrJiaGgwcPkpeXR2lpKVVVVfXefcSIEfTv35/MzEzy8vLIzc3loYceYuDAgd8b3pubwrCIiIhIC9qwYQNxcXFuX8OGDeOFF15gz549/M///A8AXbp0YdmyZbz00kts3rzZuP7f//3fcTqdpKWlMXPmTCZPnmyEYYClS5dyzz33sGDBAgYNGkRGRgabNm0iJiYGgMjISNauXUtNTQ233XYbw4YN43e/+53R+3zvvffSu3dvRo4cSc+ePfn8889JT09n5syZzJs3j5tuuomsrCx+8YtfuL3X7bffzg9/+EPuuOMOevbsyerVq+u9u8lk4q233iI0NJRbb72V2267jfDwcN56663vHT7R3Ex2u/3KB45Ik7PZbFit1tauhjQBtWX7ovZsP9SW7YfNZiM8PNxtgpWnuOWWW+jbty+//vWvW7sqTaaystIYz3w1ysrKGvV7Qj3DIiIiIuKxFIZFRERExGNpNQkRERGRa8Tf//731q5Cu6OeYRERERHxWArDIiIiIuKxFIZFRETkmtSYndSkfbqa3wsKwyIiInLNCQgIwG63KxALAKdPn2708myaQCciIiLXHG9vbzp37szJkydbuypylU6ePElgYOBV3cPb2xtfX9/GXXtVTxYRERFpJd7e3h658UZ7U1xcTHR0dKs9X8MkRERERMRjKQyLiIiIiMdSGBYRERERj6UwLCIiIiIeS2FYRERERDyWwrCIiIiIeCyFYRERERHxWArDIiIiIuKxFIZFRERExGMpDIuIiIiIx2rRMPyb3/yGkSNHEh0dTc+ePcnIyGDHjh1uZVwuF4sWLaJPnz507dqVW265hZ07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9VV+85vfGGWWLFnC0qVLee655/jkk0+wWCzceeednDp1yigzb948PvjgA1asWMHatWs5deoUGRkZOBwOo8y0adPIz89n1apVrF69mvz8fKZPn96i7ysiIiIirce7tStwoezsbMaNG0d6ejoAPXr0ID09na1btwJ1vcLLli3jkUce4Y477gBg2bJlWK1WVq9ezdSpUykrK+PNN99k6dKljBw5EoDly5eTkJDAhg0bSEtLo6CggI8//ph169YxePBgAF588UXS09Ox2WxYrdZWeHsRERERaUltrmd4yJAhfPbZZ3zzzTcA7Nq1i40bN/LDH/4QgP3791NUVMSoUaOMa/z9/Rk6dChbtmwBIC8vj5qaGrcyUVFRxMXFGWWys7Pp1KmTEYTPPTsgIMAoIyIiIiLtW5vrGX7kkUcoLy9n8ODBmM1mamtrmT17NtOmTQOgqKgIAIvF4nadxWLhyJEjABQXF2M2mwkNDa1Xpri42CgTGhqKyWQyzptMJsLCwowyF2Oz2a7+JVvh3tKy1Jbti9qz/VBbth9qy/alOdvzcj/tb3Nh+N133+XPf/4zr732Gn369GH79u08/vjjxMTEMGXKFKPc+SEW6oZPXHjsQheWuVj5y92nuYZPaGhG+6G2bF/Unu2H2rL9UFu2L63dnm1umMSCBQv42c9+xl133UW/fv2YNGkSP/3pT3nxxRcBiIiIAKjXe1tSUmL0FoeHh+NwOCgtLb1kmZKSElwul3He5XJRWlpar9dZRERERNqnNheGT58+jdlsdjtmNptxOp1A3YS6iIgIsrKyjPOVlZVs3rzZGP+bmJiIj4+PW5nCwkIKCgqMMqmpqZSXl5OdnW2Uyc7OpqKiwm0csYiIiIi0X21umMS4ceN46aWX6NGjB3369CE/P5+lS5cyadIkoG5ow4MPPsgLL7yA1WqlV69ePP/88wQEBDBhwgQAgoKCmDx5MgsWLMBisRASEsL8+fPp168fI0aMACAuLo7Ro0cza9YslixZgsvlYtasWYwdO1Y/ehERERHxEG0uDC9evJhf/epXPProo5SUlBAREcG9997LY489ZpR5+OGHOXPmDHPmzMFut5OSksK7775L586djTLPPPMMZrOZqVOnUllZybBhw3jllVfcep1fffVV5s6dy/jx4wFIT09n8eLFLfeyIiIiItKqTHa73XX5YtLcWnvw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37/e+SVLlrB06VKee+45PvnkEywWC3feeSenTp0yysybN48PPviAFStWsHbtWk6dOkVGRgYOh8MoM23aNPLz81m1ahWrV68mPz+f6dOnG+cdDgcZGRmUl5ezdu1aVqxYwZo1a5g/f37zfgDtyOXa8vTp06SmpvKrX/3qe++htmwbLtWWp0+fZtu2bcyePZtPP/2UP/3pTxQWFjJhwgRqa2uNcmrLtuNyfzatVivPP/88//rXv1i3bh09evRgwoQJFBcXG2XUnm3D5drynPfff5+cnBy6detW75zasm1oSFuOGDGCgoIC42vVqlVu59taW2qd4SbQvXt3Fi9ezD333APU9Qr36dOHBx54gNmzZwNw5swZrFYr//Vf/8XUqVMpKyujV69eLF26lIkTJwJw6NAhEhISWL16NWlpaRQUFDB48GDWrVvHkCFDANi8eTPp6el88cUXWK1WPvroIyZOnMj27duJiooCYOXKlcycORObzUZgYGArfCLXrgvb8nylpaX07NmTDz74gJtvvtk4rrZsmy7Vlufs2rWLIUOGsGnTJvr166e2bMMa0p4nT54kJiaGd955h7S0NLVnG/V9bXngwAHGjh3Le++9x4QJE8jMzOTnP/85oL9n26qLteWDDz7I8ePHWbly5UWvaYttqZ7hZrB//36KiooYNWqUcczf35+hQ4caP8LLy8ujpqbGrUxUVBRxcXFGmezsbDp16sTgwYONMkOGDCEgIMCtTFxcnPEbASAtLY2qqiry8vKa8zXlLLXltevcT2qCg4MBteW1rLq6mjfeeIPAwEASEhIAtee1pLa2lmnTpjF79mzi4uLqnVdbXls2b95Mr169SElJYebMmRw7dsw41xbb0rsxLymXVlRUBIDFYnE7brFYOHLkCADFxcWYzWZCQ0PrlTn3I77i4mJCQ0MxmUzGeZPJRFhYmFuZC58TGhqK2Wx2+1GhNB+15bWpurqaJ554gnHjxtG9e3dAbXktWrduHffffz+nT5+ma9eu/PWvfyU8PBxQe15LFi1aREhICPfff/9Fz6strx2jR4/mtttuo0ePHhw4cICFCxdy++23s2HDBnx9fdtkWyoMN6PzGxHqhk9ceOxCF5a5WPmGlLnUcWkZasu2q7a2lszMTMrKynj77bcvW15t2XbdfPPNbNy4kdLSUt544w3uu+8+PvroI7p27fq916g925bPPvuMP/3pTxednHw5asu256677jL+v1+/fiQmJpKQkMD69eu5/fbbv/e61mxLDZNoBhEREQD1vjMpKSkxvosJDw/H4XBQWlp6yTIlJSW4XN8N63a5XJSWlrqVufA5paWlOByOet8xSfNQW15bamtruf/++/n66695//336dKli3FObXntCQgIIDY2lkGDBvE///M/+Pj48Ic//AFQe14rNm7cyNGjR4mLiyM0NJTQ0FAOHjzIU089Rd++fQG15bWsW7duREZGsmfPHqBttqXCcDPo0aMHERERZGVlGccqKyvZvHmzMf4lMTERHx8ftzKFhYXGoHGA1NRUysvLyc7ONspkZ2dTUVHhVqagoMBtSZKsrCx8fX1JTExszteUs9SW146amhqmTp3K119/zQcffGB843qO2vLa53Q6jaWV1J7XhmnTprFp0yY2btxofHXr1o2HHnqI999/H1BbXstKS0s5cuSI8fdtW2xLDZNopPLycuO7HKfTyaFDh8jPzyckJITo6GgefPBBXnjhBaxWK7169eL5558nICCACRMmABAUFMTkyZNZsGABFouFkJAQ5s+fT79+/RgxYgQAcXFxjB49mlmzZrFkyRJcLhezZs1i7NixWK1WAEaNGkV8fDwzZsxg4cKFnDhxggULFjBlyhTNim2gy7XliRMnOHjwIGVlZQDs3buXoKAgIiIiiIiIUFu2IZdqy27dunHvvfeSm5vL22+/jclkMsb3BwYG4u/vr7ZsYy7VnkFBQfz3f/8348aNIyIigtLSUl599VUOHz7Mj370I0B/z7Yll/t79sKePG9vbyIiIow2UFu2HZdqy5CQEJ599lluv/12IiIiOHDgAL/85S+xWCzceuutQNtsSy2t1kgbN27ktttuq3f87rvvZtmyZbhcLp599llef/117HY7KSkpPP/888aPfKCut/jJJ59k9erVVFZWMmzYMF544QW3mZEnTpxg7ty5/OMf/wAgPT2dxYsXG7PfoW7R6dmzZ/N///d/+Pn5MWHCBBYuXIivr2/zfQDtyOXa8q233uKnP/1pvfNz585l3rx5gNqyrbhUWz7++OMMHDjwotctXbrUWBpIbdl2XKo9X3jhBR544AG2bt3K8ePH6dKlC0lJSTz66KPccMMNRlm1Z9twub9nL5SQkOC2tBqoLduKS7Xlb37zG+655x7y8/MpKysjIiKCm2++mfnz57u1U1trS4VhEREREfFYGjMsIiIiIh5LYVhEREREPJbCsIiIiIh4LIVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjH0g50IiLSIHl5eWzevJmTJ08yYMAA0tPTL3pMRORaojAsItKC9u7dy5///OdLlrn11ltJSEhooRo1TGlpKevXr+dHP/oRkZGR+Pr6XvRYU/jkk084duwYGRkZTXI/EZFLURgWEWlBUVFRblvMvvHGG8THx5Oammoc8/f3r3ed0+nEy6v1RrbZbDYsFgtxcXGXPNYUDh8+TExMTJPeU0Tk+2g7ZhGRVlJZWclLL73EnXfe6RYoT548ydKlS7njjjvIy8ujsLCQMWPGEBgYyKpVq3j00Ucxm80AlJWV8dvf/pbMzExCQ0ON6z/99FO+/fZbXC4XPXr0YMyYMXTq1Ol763Kpa5YvX87x48eNsr1796akpKTesbvuuqtBzz59+jT/93//h81mo7KykpCQENLS0oiJieGFF17A4XAYZcPCwnjggQeu/sMWEfke6hkWEWklR48exeVy0bVrV7fjxcXFAHz++ecMHz6cLl264OvrS35+PmFhYUYQPlfWx8eHLl26AGC32/nDH/7AgAED+PGPf4zD4eCjjz5i/fr13HXXXRetx+Wu+fGPf8wf//hH+vfvz8CBA/Hx8aG2trbesYY8++TJk/zhD3+gW7du3HnnnQQEBHDw4EE6dOiAl5cXkydP5vXXX+fee+8lMDDQ7V1FRJqDwrCISCspKiqiY8eOBAUF1Tvu7e3NnXfeSUhIiNvx8PDwemXDw8MxmUwArFu3joEDBzJ8+HCjzA9+8APefffd763H5a7x9fXFbrcTFRVl9PCazeZ6x/76179e9tnr1q0jPDyc8ePHG3U+/x0rKirw9fWlW7duxnkRkeakMCwi0kqOHj1KREREvePFxcX07NnTLSSeOz5w4MB6xywWC1A3ZGLv3r0cOnSIL7/80ijjdDrx8fG5aB0acs2xY8dwOp1udb3wWEPuU1ZWxrfffst99933vUH36NGjWCwWBWERaTEKwyIiraSoqIjevXvXO15cXExKSorbsZqaGo4fP16vZ/jw4cMMHTrUuM7X15epU6fWu+f3Tb5ryDVFRUUEBQXh5+fnVvfzjzX0Pl5eXvWGhVxYn0udFxFpagrDIiKtoLq6muPHj9frGa6urubEiRP1jtvtdpxOpzE2GODAgQOcOnXKCMheXl7U1NQQEBBAhw4dGlSPhlxTXFxcrz4XHmvIfcxmM06nk+rq6u9dhq24uJjY2NgG1V1EpCloBzoRkVZwuclzF4ZPf39/TCYTR48eBeDIkSP84x//wGQyGWE4MjISPz8/PvjgA44ePcqJEyfYu3cv69evx+W6+MJBDbnmUmOVr+Q+3bp1w9/fn3Xr1nHs2DFKS0vJy8ujqKjIuI/T6eT48eOcOnWKysrKK/5cRUSulHqGRURaQVFREX5+fgQHB7sdP3bsGF26dKnXu9qpUyeGDx/O2rVr+fDDD4mOjiY+Pp4dO3YYZf39/Zk4cSJZWVm8/fbbOJ1OgoODiY+P/94xuJe7xuVycezYMQYPHmxcc7FjDXl2x44dueuuu8jKyuIPf/iDMWSiV69exn2GDRvGhg0byM7OJjExkXHjxl3V5ywicjlaZ1hEREREPJaGSYiIiIiIx1IYFhERERGPpTAsIiIiIh5LYVhEREREPJbCsIiIiIh4LIVhEREREfFYCsMiIiIi4rEUhkVERETEYykMi4iIiIjH+v9spXR7vunDgwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## If Machine Learning is Cool, How About Double Machine Learning?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimate the effect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n"
     ]
    }
   ],
   "source": [
    "# Get estimate (DML)\n",
    "estimate = model.estimate_effect(\n",
    "    identified_estimand=estimand,\n",
    "    method_name='backdoor.econml.dml.LinearDML',\n",
    "    target_units='ate',\n",
    "    method_params={\n",
    "        'init_params': {\n",
    "            'model_y': LGBMRegressor(n_estimators=500, max_depth=10),\n",
    "            'model_t': LGBMRegressor(n_estimators=500, max_depth=10),\n",
    "        },\n",
    "        'fit_params': {}\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 12363.8275243282$"
      ],
      "text/plain": [
       "12363.827524328159"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimate.cate_estimates.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict on test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute predictions\n",
    "effect_pred = model.causal_estimator.effect(earnings_interaction_test.drop(['true_effect', 'took_a_course'], axis=1))\n",
    "\n",
    "# Get the true effect\n",
    "effect_true = earnings_interaction_test['true_effect'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 0.0150079756248254$"
      ],
      "text/plain": [
       "0.015007975624825387"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Compute the error \n",
    "mean_absolute_percentage_error(effect_true, effect_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Hs7tt9/O7bffzl//+lcAHA4Ha9euZdSoUQwYMIBx48axefNm47X1o7Vbt27l5ptvZsCAAfzud79j8ODBANxyyy0EBgaye/duAPbt28cPfvADBg4cyLBhw/if//kfzpw5Y1zP4XDw8ssv853vfIeQkBCuvPJKnn76aQBGjhwJwKRJkwgMDOTGG29s8nnq7+mdd97hBz/4AQMGDOCGG27gP//5D19//TVTp04lLCyM6dOnc/jwYafX/u53v+Oaa67BYrFwzTXXsGnTJqfz2dnZ3HjjjYSGhvLd736XlJSURu9//Phx/uu//ouoqCiioqKYPXs2WVlZF9EjbaORYREREelWeicltXjex27Hw6P9xvPONgipl8LHx4eamhoAkpOTef/993n++eeJjY3l888/56GHHiIwMJBp06YZr3n66adJTk7m5Zdfxmw2M378eMaOHcsbb7zBmDFjCAoK4quvvmLmzJk8/vjjvPzyyxQXF7NixQp+/OMf88YbbwDw05/+lI0bN/Kzn/2M66+/nsLCQtLT0wH46KOPmDx5Mu+88w5XXXUVvXr1avE5Vq9ezTPPPMPgwYP5n//5H+677z6Cg4N54oknsFgsLF68mOXLlxvhfvv27Tz66KM888wzTJ48mX/84x888sgjhISEkJiYiN1u56677iIgIIAPPviAiooKHn/8caqqqs73wdmz3HzzzYwePZq//vWv9OrVi5dffplbb72V1NRUevfu3S591BSFYREREZFL9MUXX7B161YmTJhAeXk569at491332XcuHEADB48mC+++ILXXnvNKQwvXLiQW2+91fh9UVERAEFBQYSGhgLwy1/+khkzZvDggw8a7V544QXGjx/PqVOn8PX15de//jWrV69m7ty5AERHRzN69GgAgoODAejXr59xzZb893//N1OnTgXgxz/+MXPmzOGNN95g/PjxANx333089thjRvtf/epXJCUlsXDhQgBiY2NJS0tj7dq1JCYm8vHHH/PNN9+wf/9+IiIigLrAnZiYaFzjnXfeweFw8Otf/9pYM/gXv/gFsbGx7Ny5kxkzZrR6322lMCwiIiLSBh9++CGDBg2itraWmpoafvCDH7BmzRoyMjKorKxk1qxZTptB1NTUEBkZ6XSNa665ptX32b9/P9nZ2fz5z382jjkcDgBycnIwm81UVVUxYcKEdnmu4cOH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r1H/O2rUKLy8vJza5OXlkZGRYbQZPXo0ZWVlpKamGm1SU1MpLy93apORkeG0JNuuXbvw9vZm1KhR7f7cIiIiItL9dGqZxLJly9i8eTO///3vCQwMNGqE/fz86NOnDyaTicWLF/PCCy8QFxdHbGwszz//PH5+fsyaNQuAgIAA5s6dy6pVq7BYLAQFBbFy5UqGDx/OxIkTAYiPj2fKlCksXbqUtWvX4nA4WLp0KdOmTTOG4SdPnsywYcNYtGgRycnJFBcXs2rVKubNm6eVJERERETcRKeG4ddeew3AWDat3vLly1mxYgUADz30EBUVFTz66KNYrVauvfZa3n33Xfr27Wu0f+aZZzCbzcyfP5/KykrGjx/PK6+84lR7/Oqrr7J8+XJmzpwJQGJiImvWrDHOm81mNm/ezLJly5g+fTo+Pj7MmjWL5OTkDnt+EREREeleTFar1dF6M+loXV08Lu1HfdmzqD97DvVlz6G+7Fm6uj+7dJ1hEREREZGupDAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVudHob37NnDnDlzGDZsGIGBgbz11ltO58vKynj00Ue58sorGTBgAN/97ndZt26dU5uqqioeffRRoqOjCQsLY86cOeTl5Tm1sVqtLFy4kMjISCIjI1m4cCFWq9WpzbFjx0hKSiIsLIzo6Ggee+wxqqurO+S5RURERKT76fQwXF5ezpVXXsmzzz6Lr69vo/MrV67kgw8+4JVXXmHfvn088sgjPP300/zxj3802qxYsYLt27ezceNGduzYQWlpKUlJSdhsNqPNggULSE9PZ8uWLWzdupX09HTuv/9+47zNZiMpKYmysjJ27NjBxo0b2bZtGytXruzYD0BEREREug3Pzn7DqVOnMnXqVAAeeOCBRudTU1NJSkpi/PjxAERFRfHmm2/yxRdfMGfOHEpKSnjzzTdZt24dkyZNAmDDhg2MGDGCjz/+mISEBDIyMvjwww9JSUlhzJgxALz00kskJiaSmZlJXFwcH330EQcPHuTAgQOEh4cD8PTTT7NkyRKefPJJ/P39O+PjEBEREZEu1O1qhseOHUtKSgq5ubkA7Nu3j//85z8kJCQAkJaWRk1NDZMnTzZeEx4eTnx8PPv27QPqAnWfPn2MIFx/XT8/P6c28fHxRhAGSEhIoKqqirS0tI5+TBERERHpBjp9ZLg1zz33HEuXLuWqq67C07Pu9tasWcP06dMBKCgowGw2Exwc7PQ6i8VCQUGB0SY4OBiTyWScN5lM9O/f36mNxWJxukZwcDBms9lo05TMzMxLf8guuLZ0LvVlz6L+7DnUlz2H+rJn6cj+jIuLa/F8twvDGzZsYN++fbz99ttERETwz3/+kyeffJLIyEimTJnS7OscDkej8NuWNi0dh9Y/0LaqL9+Qy5/6smdRf/Yc6sueQ33Zs3R1f3arMFxRUcFPf/pTXn/9dRITEwG46qqrOHDgAC+//DJTpkwhJCQEm81GUVER/fv3N15bWFjIuHHjAAgJCaGwsNAp/DocDoqKiozR4JCQEKNkol5RURE2m63RiLGIiIiI9Ezdqma4pqaGmpoazGaz03Gz2Yzdbgdg1KhReHl5sWvXLuN8Xl4eGRkZRo3w6NGjKSsrIzU11WiTmppKeXm5U5uMjAynJdl27dqFt7c3o0aN6qhHFBEREZFupNNHhsvKysjOzgbAbreTm5tLeno6QUFBREREcP311/P000/j5+dHREQEe/bs4Y9//CNPP/00AAEBAcydO5dVq1ZhsVgICgpi5cqVDB8+nIkTJwIQHx/PlClTWLp0KWvXrsXhcLB06VKmTZtmDMNPnjyZYcOGsWjRIpKTkykuLmbVqlXMmzdPK0mIiIiIuIlOHxn+8ssvGT9+POPHj6eiooLVq1czfvx4nnnmGQB++9vfcs0117Bw4ULGjh3LL37xC1auXMnChQuNazzzzDPcdNNNzJ8/n+nTp+Pn58cf//hHpxHlV199lauuuoqZM2dy2223cdVVV7FhwwbjvNlsZvPmzfTu3Zvp06czf/58brrpJpKTkzvvwxARERGRLmWyWq2Orr4J6fricWk/6sueRf3Zc6gvew71Zc/S1f3ZrWqGRUREREQ6k8KwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG11ehjes2cPc+bMYdiwYQQGBvLWW281anPo0CHuuusuIiMjGThwIOPHjycjI8M4X1VVxaOPPkp0dDRhYWHMmTOHvLw8p2tYrVYWLlxIZGQkkZGRLFy4EKvV6tTm2LFjJCUlERYWRnR0NI899hjV1dUd8twiIiIi0v10ehguLy/nyiuv5Nlnn8XX17fR+cOHDzNt2jSioqLYtm0be/fu5YknnsDPz89os2LFCrZv387GjRvZsWMHpaWlJCUlYbPZjDYLFiwgPT2dLVu2sHXrVtLT07n//vuN8zabjaSkJMrKytixYwcbN25k27ZtrFy5smM/ABERERHpNjw7+w2nTp3K1KlTAXjggQcanU9OTmby5Mn87Gc/M44NHjzY+HVJSQlvvvkm69atY9KkSQBs2LCBESNG8PHHH5OQkEBGRgYffvghKSkpjBkzBoCXXnqJxMREMjMziYuL46OPPuLgwYMcOHCA8PBwAJ5++mmWLFnCk08+ib+/f0d9BCIiIiLSTXSrmmG73U5KSgrx8fHcdtttxMTEMGnSJN59912jTVpaGjU1NUyePNk4Fh4eTnx8PPv27QMgNTWVPn36GEEYYOzYsfj5+Tm1iY+PN4IwQEJCAlVVVaSlpXXwk4qIiIhId9DpI8MtOXXqFGVlZbz44ov85Cc/4amnnuL//u//uO++++jduzfTp0+noKAAs9lMcHCw02stFgsFBQUAFBQUEBwcjMlkMs6bTCb69+/v1MZisThdIzg4GLPZbLRpSmZmZns9bqdeWzqX+rJnUX/2HOrLnkN92bN0ZH/GxcW1eL5bhWG73Q7AD37wA3784x8DcPXVV5OWlsZrr73G9OnTm32tw+FoFH7b0qal49D6B9pW9eUbcvlTX/Ys6s+eQ33Zc6gve5au7s9uVSYRHByMp6cn8fHxTsevuOIKcnNzAQgJCcFms1FUVOTUprCw0BjpDQkJobCwEIfDYZx3OBwUFRU5tblwBLioqAibzdZoxFhEREREeqZuFYZ79erFd77znUZD5YcOHSIiIgKAUaNG4eXlxa5du4zzeXl5ZGRkGDXCo0ePpqysjNTUVKNNamoq5eXlTm0yMjKclmTbtWsX3t7ejBo1qqMeUURERES6kU4vkygrKyM7OxuoK4vIzc0lPT2doKAgIiIiWLJkCfPnz2fcuHGMHz+e3bt38+677xrrEQcEBDB37lxWrVqFxWIhKCiIlStXMnz4cCZOnAhAfHw8U6ZMYenSpaxduxaHw8HSpUuZNm2aMQw/efJkhg0bxqJFi0hOTqa4uJhVq1Yxb948rSQhIiIi4iY6fWT4yy+/ZPz48YwfP56KigpWr17N+PHjeeaZZwC46aab+MUvfsHLL7/MuHHj2LBhA6+88grTpk0zrvHMM89w0003MX/+fKZPn46fnx9//OMfMZvNRptXX32Vq666ipkzZ3Lbbbdx1VVXsWHDBuO82Wxm8+bNxsS8+fPnc9NNN5GcnNx5H4aIiIiIdCmT1Wp1tN5MOlpXF49L+1Ff9izqz55DfdlzqC97lq7uT5dHhl977TUqKys78l5ERERERDqVy2G4sLDQabvjepWVlezcubNdb0pEREREpDO0Gob/9Kc/sXv3bgDOnDnT6HxNTY12bBMRERGRy1Krq0n079+fo0ePArBp0ya8vb2xWCwMGDAAi8XC6dOn8fPz6/AbFRERERFpb62G4cmTJwOwZs0a5s2bR1lZGfn5+RQUFHDo0CHsdjuTJk3q8BsVEREREWlvLq8zvGzZMjw86qoqYmNjO+yGREREREQ6i8sT6I4ePcrx48c78l5ERERERDqVy2H4H//4B0VFRY2OFxQUUF5e3q43JSIiIiLSGVwOw6dPnyYiIqLR8ePHj7N9+/Z2vSkRERERkc7gchj28fFpcgQ4IiKCkydPtutNiYiIiIh0BpfDcFxcHPv27Wt03OFwYLfb2/WmREREREQ6g8theMKECRw/fpwtW7YYI8HV1dX885//xGKxdNgNioiIiIh0FJeXVvP19WXevHmkpKTw+uuv4+Hhgd1ux9fXl9tuu60j71FEREREpEO4HIYB/P39mT17NiUlJRQUFODh4UFYWBi+vr4ddX8iIiIi0kMcqYDkHDhRBQO94YkhXX1HFxGGy8vL2blzJ0eOHMFsNnPPPffg7+/fkfcmIiIiIj3EkQr44X7IqTx/7F9n4CV/T+K67rZcrxn+4IMPqKioYMaMGVRXVxuT5j744AP27t3bYTcoIiIiIpe/5Bw4VlZDUGmxcSynEl4pDe7Cu7qIkeHDhw9z5513EhISgslkMo7HxcWxa9currvuug65QRERERHpPpoqdYhqqmLWbsd0/DgeWVmYDx3itr1Z3HHsCF9HDOWJu540mp2yXVTVbrtz+d09PDzw9GzcPCgoCKvV2p73JCIiIiLdzJEKWHEI/nEaqhznj//rDLx3tYPB5YV4HDqER1ZWXQDOzobK8zURsWVw3AZxx7PA4YBzg6sWc21nP4oTl8NwdHQ0Bw4cYMKECU7Hq6qq8PBwudpCRERERC4zF9b7+peXEHcimyvyDhF3IouS09n4mkpavEZcb7DWAtUVhBfmkWsJZ4gPLOpbBHTdPDSXw/CECRPYtGmT07Gamhr27NlDaGhou9+YiIiIiHS8+rKHnAooqAaLF0T3blD+UFHBpg+zGfWfLG4/F4BDSk45XcPDi1bzrK8HfM8fvujVnwQPK2dDwnliCFTnduOR4ZSUFBISEvDy8sLf35+5c+eyc+dOampq+N3vfkdNTQ0+Pj7Mnj27s+5XRERERNrJhSO+nrU1eOcfofxEFu+fymJxZRYB+XnMLHFwuqb56/g0UyTg6NsXe0xM3VdsLI7oaL4TGMh3GrTJbLenaZsWw3B6ejrf//738fLy4t133+Wmm24iKSnJWGfYbDYTFhaGj49PZ92viIiIiLQHu531e/OIPpDFtONZxJ3IYkj+ETxt50dqj3jD1X2aD7sAvc11JRD4+GCLjsYeHX0+/FosRm1wd9ViGO7bty8nTpwgLi6Ob7/9lpqaGnr16kVAQAABAQGddY8iIiIi4qImV3vwcWA6dapuctuhQ3hkZ2POzuaugsoWR3wr61bSNep9z9rqfl9r9iQ3JBKP2BgSx8bCsGjOhofDZTiPrMUwfN111/Huu+8SEhIC1I0UDxo0iNDQULy9vTvlBkVERESkaRcG33sGwo8zoKiohCuOZ+F1/BC7CrKYdzabPmfPNHp9SyO+xnmTCe+IMIZFxvCGXwwHQmOwR0Wx4opexpJqjhav0r21GIZHjRpFREQEmZmZ5Ofnc+DAAXbv3o3dbicgIIDQ0FBCQkIIDQ0lLq4r9w4RERERcS/19b4nS84SeyKbkONZfHYymyfyDmEpKXRqm32u3OFCF474AhT6B/NtWCxnomJ4aHIMZ4cOAT8//IDFHftIXcKlCXRjx45l//793HXXXfTq1YtTp06Rn59PQUEBOTk5fP755yxdurSz7llERESkx2uy3MGzBo8jR/DIyuLLPYdY9m024UV5mBwtj83WlztcyCegL1ddHcPmPjF8ERLLv0Oi8ekXyBDfuvcLbWozjR7G5Ql0FosFT09PPD09GThwIAMHDuysexQRERHpsY5UwOOZ8K/Sut9/zx/+OxwePGinJi+PuOPZBB8/xOcFWURVHMHHUTfBLfYMLdb7NuTjgfMEt9hY7DExOCwWfEwm7gbu7pCn6/7aNIFORERERC7dkQq48UvIrXIQUnKKuONZhB4/xFcnsnn2RDY+1ZVO7Q81KHdort7XbIIqD09yQqPIHBhD6eBYVk6J5mzMoMtygltH0wQ6ERERkQ5Sv4Xx52fA5gBvEwzygSttJTxhy+Ljzw5x7zdZxJ3Ixr+JCW4XaljuUF/vW243kRccxrdhMZyJimXe92N40yuKPLsXA3rVlTuEuUG5Q1tpAp2IiIhIO2hqZYf7v4GiM3UT3K44nkXcufV8LSWFHDXDNaZzWxS7yMcDHBYL9pgYzNHRRITH8FNTNEc9ehvBN8oXXum4x+xxWt2OOTg4mODgYE2gExEREWlG/coOuaXVDCk4QsDxLD45mcVP8rIYVHS8yQluZ23gaKFqwWyCYl9/MgdG821YLGcHx5A8PYaK0PN7PYQC6zrgedxJq2G43v3332/8WhPoRERExF3tKYbF30BJtZ0ri3N5yZzNgbRDPPhtFoMLjjrt4NYab4+6NXor7VDZy4dDA6PJHBiNNSqWBybG8n51f07WmBjQC346BCJU7tDuXA7DIiIiIu7Eqeyhl4P/16eAkm+y+PPuLBadyCb23AS3U0CsGUptrV7SUGuum+DW94oYEkbH8rQpmhSfQTg8PPieP6yOrSt3+F6HPZ3UczkMl5eXs3PnTo4cOYLZbOaee+7B39+/I+9NREREpEvknrCy6oMs/A5nkXA8iyuOZ3GiuhS7A265YM1eB3C2mXV8zSaoxURu8CC+DYshMyyGzIEx5IRGEdHHi/dGQrAv/LLDn0ia43IY/uCDD6ioqGDGjBls3boVu91uHO/bty/XXXddh92kiIiISHurH/kttpYzsjCHB6uyCD2WhcehQ1QeKeLeKuf2ZwFTM9cyAb3NdXXApwL6821YLCVRMfzo+hhe9IpmT5WvsZpEuA/M8D0/2U26lsth+PDhw9x5552EhIRgMp3/oxAXF8euXbsUhkVERKT7q67G48gRCr8+xPZPs5h0LNuY4HbIDEH+4OvR/I5tJhM0nAtX4hdA5sBoiiNjeHBSDMnmGHJ6BTit7PB6pzyYtJXLYdjDwwNPz8bNg4KCsFqt7XlPIiIiIpfObsd07Bjm7Gw8supGfD2OHgWbjdNlcPWFI782yDxbt6lFUxtaVPbyoToqml39Y/hmYAzfhsVyKqA/niYT74+EkCCVO1yOXA7D0dHRHDhwgAkTJjgdr6qqwuMidjPZs2cPL7/8Mvv37+fEiROsW7eOO++8s8m2Dz30EJs2beJ///d/efDBB53e84knnuCdd96hsrKS8ePH88ILLzBo0CCjjdVq5bHHHiMlJQWA6dOns2bNGgIDA402x44dY9myZezevRsfHx9mzZpFcnKydtkTERG53DgcmAoK6gJvVhYe2dmYc3KgsrLJ5s2N/NYfj+3rSVpIFP8KqQu9mWHReA0axJ+v8SCosm41iepaiPSE9UPh+qAOei7pcC6H4QkTJrBp0yanYzU1NezZs4fQ0FCX37C8vJwrr7ySO+64g0WLFjXb7v333+ff//53k0u4rVixgh07drBx40aCgoJYuXIlSUlJfPLJJ5jNZgAWLFhAbm4uW7ZswWQysWTJEu6//342b94MgM1mIykpiaCgIHbs2EFxcTGLFy/G4XDw85//3OXnERERkS5gtWKuH+09F35NpaUuv7zhyK/DdH6CW+iwGK6eHAuRkXyv1oudOVBTDWMblD1E+UK6qkN7DJfDsL+/P3PnzmXnzp3U1NTwu9/9jpqaGnx8fJg9e7bLbzh16lSmTp0KwAMPPNBkm6NHj/L444/z3nvvMWvWLKdzJSUlvPnmm6xbt45JkyYBsGHDBkaMGMHHH39MQkICGRkZfPjhh6SkpDBmzBgAXnrpJRITE8nMzCQuLo6PPvqIgwcPcuDAAcLDwwF4+umnWbJkCU8++aRWyhAREekGjlTAz78ux5yTw4iTWfyoPIvBB/5N75qaNl/TYbEQdm0Mr3nE8Gn/GLIGDqHCuzdDfOC9kWA/N6ktygtevbKdHkS6rYtaZzgwMJCkpCRKSkooKCjAbDYTFhaGj49Pu91QbW0tCxYsYNmyZcTHxzc6n5aWRk1NDZMnTzaOhYeHEx8fz759+0hISCA1NZU+ffoYQRhg7Nix+Pn5sW/fPuLi4khNTSU+Pt4IwgAJCQlUVVWRlpbG+PHj2+2ZRERExDVHS6p57Z9H8Mk+ROzxLHxysphdcNw4/7UZhntWQB/XlmFwBARgj47GHhODPTYWW3Q0BATQG1hcAUU5EFSN04Q3cS9t2nQjICCAgICA1hu2werVqwkKCuLee+9t8nx9CA8ODnY6brFYKCgoMNoEBwc7rXphMpno37+/UxuLxeJ0jeDgYMxms9GmKZmZmW16Lld05LWlc6kvexb1Z8+hvuxm7HZ6nTyJz7FjeB85Qu2RPI4fOc0UW+Oti+udtcERvPApL298OW9vqsLDqYyMpCoyksrISGqDguqWgKhXUFD3dc5jXoBX3a+rc0F/QrpGR/7djIuLa/F8t9qB7tNPP+UPf/gDu3fvvujXOhyORuG3LW1aOg6tf6BtVV++IZc/9WXPov7sOdSXXczhwJSfz6mvs/jg8yz8c7KIOZnDFV5V+J6r300vg2oXdnGrcpjwCwjAHhWFPSYGW2ws9pgYTGFh9PbwoHfHPom0s67+u9mtwvDu3bs5efKkU3mEzWbjqaeeYv369Xz99deEhIRgs9koKiqif//+RrvCwkLGjRsHQEhICIWFhU7h1+FwUFRUZIwGh4SEsG/fPqf3LyoqwmazNRoxFhERkYvUxAS3ypJSDp+B8HOB9xTwuRm+18ravg0nuH0bFsvA6FBG3nwleHl12uNIz9WtwvCCBQu49dZbnY7ddttt3Hbbbdx9990AjBo1Ci8vL3bt2sXtt98OQF5eHhkZGUaN8OjRoykrKyM1NdU4lpqaSnl5uVOb559/nry8PGNJtl27duHt7c2oUaM643FFRER6hKNF5bzxaTY+OdkMO5nF9OJD9LUWNWqXebauzKGhptb2LQiw8O2gWDIHRvNtWCxZA4ZQ6V1XzDvEB+73z1EQlnbTYhjesGEDoaGhxldISAh9+vS5pDcsKysjOzsbALvdTm5uLunp6QQFBREREdFoVNbT05PQ0FBj+DwgIIC5c+eyatUqLBaLsbTa8OHDmThxIgDx8fFMmTKFpUuXsnbtWhwOB0uXLmXatGnGdSZPnsywYcNYtGgRycnJFBcXs2rVKubNm6eVJERERJpzbge3+hHfsxlZFHx7nPENQu6XDUZ7G2pq5LfEL4CC6BiGXR+D/6AY/utsNOnm8/OSwnvB5L5Qajs/ya06t7aDHk7cUYthePTo0eTn55OZmck///lPampq8PPzIyQkxCkk9+vXz+U3/PLLL7n55puN369evZrVq1dzxx13sH79epeu8cwzz2A2m5k/f76x6cYrr7xirDEM8Oqrr7J8+XJmzpwJQGJiImvWrDHOm81mNm/ezLJly5g+fbrTphsiIiIC2GyYcnPrdnA7dKju69gxsJ1PvofLWh7tbcjD15f0QTFkDowm81zJQ6F/MLeHmph1JYQAb1ZAcg6cbGGFB01yk/ZkslqtzU/ZbOD48eO89957DBkyBA8PD/Lz8zl+vG6pEy8vLx555JEOvdGerquLx6X9qC97FvVnz6G+bMW5CW4eWVlYD2bxxZdZBBzLoa+tirjejUd566WegdNNLPkb4OPJmJGD6ya4xcRgj4nhcL9B/DDdRE6DTeHq1/a9mCXN1Jc9S1f3p8s1w3/729+YNm0aMTExxrGjR4/yl7/8hREjRnTIzYmIiEjHMBUX101sy8qiNCOLzAPZmMpK8TTBmVrwsEMpdV/W2qbLHqCuztdhMnGsf7hR45sZFsO1V0Ux8mrnmBFFXfBtbeRXpDO5HIaLi4sbre0bGRnJ1KlTSU1NbfcbExERkXZSXo5HdjYeWVl1KzxkZWEqqpvgVmGH/5xpXOrQ0IVlD46QEGO0t094DI+VRpNhP78B1xAf+EkzA31RvtrVTboXl8PwoEGD+OKLL0hISHA63nAjCxEREeli1dV4HD5sjPp6ZGXhcfx4s82bWuGhoRK/AL4Ni8EjNpYrEmKwR0dDg4nmA4A/uVDnK9JduRyGp02bxqZNmygvL2f06NGEhIRQW1vLZ599Rq9evTryHkVERKQp9RPczoXe8m8OkfPtMaprbfh40GKtb72GKzxU9PIlM6xuglvd0mYxFPoHg8nE7SFgb2ZEV6O9cjlzOQz369ePu+++mw8++IDXX38dDw8P7HY7ZrOZG2+8sSPvUURERBpMcPPIysJ86BCVh3LILKmm0o5R69sw3LZU64unJ/YhQ/iqdwx/7FNX65sXHOa8dfE5Q3zqRntFeqKL2nSjX79+zJkzh5KSEgoKCjCZTAwYMOCS1x4WERERZ8YEt4Y7uJ0pI70MimvB4YDWloMyan37mrBHRGCPjsZ+butie2QkeHoytgKe3Q95DVZ4CPeGEX5QZlfZg/R8bdqBLiAggICAgNYbioiISOvKy50mt539NoucvNNU2jHKHQA+K4GqZrYsbig/MOTcqg7R9I2P5eXEIeDj02TbKF+t8CDuzeUwXF5ezs6dOzl8+DCenp7cc8892qlNRETkYlVX45GT4zzB7cQJKuxwoByKa6D2glFfay30MTcdhK1+AcYGFpkDY8gMi6a09/n/P98eAjSdgw2q+RV35nIY/uCDD6ioqGDmzJls3boVu91uHO/bty/XXXddh92kiIjIZclmw3Ts2Pkd3LKy8Dh6lIpaO9+cxRj5DfeG9LKmtyuGunKHWkfjCW7fhsVS1Ldfk3W+oFpfEVe4HIYPHz7MnXfeSUhICKYGf+ni4uLYtWuXwrCIiLg3hwPTyZNGfa/50CE8cnKoqKw2gq+nCWyOuppfe4Oh3/zquuMN1Xh6kR06+NyobwynI2NI9296gls91fqKXDyXw7CHhweeno2bBwUFYbVa2/OeREREuj1TcfH50d5zwddUVubUpsIOn7eyoQVALSaOhkQ47eB2OCQSm/n8/3cT+0FBWV1d74VG9IahfRR+RdrC5TAcHR3NgQMHmDBhgtPxqqoqPDxaWcRQRETkclZWVjfa22B1B1Nxcasva25Di4YT3L4NiyVrwBCqejVf2DvEB549t6PbQxmwtwTsQH9PeO1KuD6ojc8lIq6H4QkTJrBp0yanYzU1NezZs4fQ0NB2vzEREZEu0cwEt7aotLc+wa2er0fdSHJDvYApwbA69vyI73uj2nQrItIMl8Owv78/c+fOZefOndTU1PC73/2OmpoafHx8mD17dkfeo4iISMeon+DWMPgePQp251RaYa8b5W241FlTG1k4eveuW8s3JgZ7TAy/tcXy26rmJ7jVG+IDv4qHdbl1ZRUA3+1bNxqssgeRjuVyGH7ttde46667SEpKMjbdMJvNhIWF4dPM2oUiIiLdhsOB6cSJ8zu4ZWXhkZMD1eeLcJsKvdC47tdaC9/t54VPzGBssbFGAHaEOU9we6gCdu2HnAYbWjTkY4JJQedDr8odRDqfy2G4sLAQm63uO0HDTTcqKyvZuXMn06ZN65g7FBERaYMLJ7hF79+PbxNzXOoD8FkblNqcV3WoX9+33G7iSEjEuWXN6koevjc8gg1Xt/y/0Qs3tOjjUZeVS21a7UGku2g1DP/pT39i4MCBAJw5cwY/Pz+n8zU1NaSlpSkMi4hI13FhgptHRQVc8P+w5lZ7OBE0wFjPtygyhs/7N57gNsiFneBAG1qIdHethuH+/ftz9OhRADZt2oS3tzcWi4UBAwZgsVg4ffp0o4AsIiLSYaqq8Dh8uC70nlvP13TyZKNmFXY4eG5HNxtgpjdBdhjmd77eN/Ms5PkGnpvYVreeb2ZYDGW+fY3rWLygqqbxbQzo1UHPJyKdqtUwPHnyZADWrFnDvHnzKCsrIz8/n4KCAg4dOoTdbmfSpEkdfqMiIuKGamsx5ebWbWBRP8Ht2DGnCW4N63w9z5XrVtvhTG3d8mP17JjI8fBjX3A0M66LJmhoDE9VxPJXR8sT3L7bF74561z3q53dRHoOl2uGly1bZqwnHBsb22E3JCIibqrhBLf6HdwOH3aa4Hahlja1qPH0ImvAEGM5s2/DYjnebyCYTHwaUle60PtroKD5W2q4vm993a9qfUV6FpfD8NGjR+nVqxdhYWEdeT8iIuImTKdPn5/gdi4Am8rLL+oa9RPf7B4eHO0fbqzn+21YLEct4U47uDVUv4vbE0PgX2ecR339POpKKYb4Oode1f2K9Ewuh+F//OMfjB49ulEYLigowM/PT3XDIiLSvNLSutHe7GyXd3BraW1fx4AB2GJi2GqK4f3AGLJDB7e4g9uF6ut9L1ztQaO+Iu7H5TB8+vRpIiIiGh0/fvw433zzDXPmzGnXGxMRkctUVZXTDm7mrKwmJ7i1pGH5Q3GfQL4Ni8U6OJYlE6MJHRYNfesmuGV9DQdbKHNoSri3c72vVnsQcW8uh2EfHx/Ky8sJDAx0Oh4REcHHH3/czrclIiKXhYYT3OpLHnJzG+3g5iqHnx/26Gje8I3hLb+6kofT/v2M8wV94NXzCz00WebQkA/QywOqHOBDLdf383Ta2lhExOUwHBcXx759+5g5c6bTcYfDgb2N3/REROQyUj/BrcGSZh5HjrQ4wa1FvXphHzwY27mti+0xMTgG1k1w2/wlfFbS+CUnL3iri9nUIjMzh7i4uLbdq4j0WC6H4QkTJrBx40a2bNnCDTfcwIABA6iuruaf//wnFoulI+9RREQ6m8NRN8GtfhOL7Ow2TXAzeHhgDw/HHhuLPSYGW2wsjvBw8Gz6f0MDvZu+TFNr+6rMQUQuhcth2NfXl3nz5pGSksLrr7+Oh4cHdrsdX19fbrvtto68RxER6Wj1E9zqV3Y4dAiT1drmy9VPcLPHxNQF4MGDwbuZhNuEpsoftLaviHQEl8MwgL+/P7Nnz6akpISCggI8PDwICwvD11fFVyIil412mODWkCMoyAi9tuho7NHnJ7i1lVZ5EJHO0mIY/vOf/8xNN92El5cXp0+fpl+/ukkMAQEBBAQEdMoNiojIJWiHCW4Nlzijtx+xI6LpGx9jlDw4+vVr9RptofIHEekMLYZhPz8/bDYbXl5e/OY3v8HLywuLxUJoaCihoaGEhIQQEhKCZzM1XyIi0okucYLbhev6xgb0ojpqMC/2imVv/2gyw2I43m8gQ3xNvDdSo7Qi0jO0mGKnTp1q/PqBBx6goKDA+Nq3bx/Wc/Vk/fr147777uvQGxURkQbaaYJbfQAus3vwdXAEX0fFGLu4mSPCievryd9OO78mp7KufEGjtiLSE7g8pOvv74+/vz+xsbHGsZqaGvLz8zl16lSH3JyIiJxTWmrU99bX+l7qBLfCqFj+nyma3f1jyR4wmGqvCya41UBJadOvv3CJMxGRy1WLYXjDhg1GSUR9WUSfPn2M815eXoSHhxMeHt7hNyoi4jYqK/E4fNio8TVnZWHKz2/1Zc1tX+w0wS0mpm6CW58+PPw1bLnI3dvqNbXEmYjI5ajFMDx69Gjy8/PJzMzkn//8JzU1Nfj5+RESEuIUkvt10OQJEZEer7YWj2PHzk9uy8rC49gxcDhafWnD8OtpgjO1UNTLj8zwaL4Ni6V8cAz/OzWG8EFNf48+UdX67X3PHw6Wa4kzEem5WgzD11xzjfHr48eP89577zFkyBA8PDw4evQon332GVA3QvzII4907J2KiFzuHA5Mx4/XBd76CW6HD0NNzUVf6nQNfFbRi4zQIWSGxZA5MJpvB8VyImhA3RZs53iWwKuDmr5Gcxtb1BviA6vPVcZpiTMR6alcrhn+29/+xrRp04iJiTGOHT16lL/85S+MGDGiQ25OROSyVT/BreGIb3Y2prNn23Y9Dw/skZHYY2I4ER7DzWUxfBMcgd1sbvFlLdX2NrWxhZ8HXOkHg32dQ68my4lIT+VyGC4uLiY4ONjpWGRkJFOnTiU1NbXdb0xE5LLSjhPcTtfAh94DOTgghpMR0cy9IZZRVw82dnB7/Gv42sVa35Zqe7WxhYjIRYThQYMG8cUXX5CQkOB0vH///hQUuD4DY8+ePbz88svs37+fEydOsG7dOu68806gbnWK5ORk/v73v3P48GH69u3LDTfcwFNPPUVERIRxjaqqKp544gneeecdKisrGT9+PC+88AKDBp3/WaDVauWxxx4jJSUFgOnTp7NmzRoCAwONNseOHWPZsmXs3r0bHx8fZs2aRXJyMr16aWaIiLSgsrLxDm4uTHBrSoUdvvQM4tuBMZQNiWXIVTHcUxlNie/5ycqbyuH9s3D9ubIGV2p9wbXaXm1sISLuzuUwPG3aNDZt2kR5eTmjR48mJCSE2tpaPvvss4sKj+Xl5Vx55ZXccccdLFq0yOnc2bNn2b9/P8uWLWPEiBGcOXOGJ554glmzZrFnzx5jc48VK1awY8cONm7cSFBQECtXriQpKYlPPvkE87kfGS5YsIDc3Fy2bNmCyWRiyZIl3H///WzevBkAm81GUlISQUFB7Nixg+LiYhYvXozD4eDnP/+5y88jIj1cbW3dGr4NRnxdneDWFIefH/boaOyxseRFxDL7bAxpXkHGeTNgu2BkthZY/A2kX1f3++ZqfX09YGIglNk1yisi4iqT1Wp1+Tv66dOn+eCDDzh8+DAeHh7Y7XbMZjM33ngjV1558UMLgwYNYs2aNcbIcFO++eYbxo4dy549exg+fDglJSXExsaybt06Zs+eDUBubi4jRoxg69atJCQkkJGRwZgxY0hJSWHs2LEA7N27l8TERD7//HPi4uL4+9//zuzZszlw4ICxNNzmzZtZsmQJmZmZ+Pv7X/TzXIrMzEzi4uI69T2lY6gvL2MNJrjVlzuc/c9/6OPdykyzJlTY4WBNL7JCh1A6OIYpo6OxXBmLY8D5CW73XcTSZgFmOHJD3a+PVMAP9zeu9f3TCLg+qOnXi/5u9iTqy56lq/vzovZR7tevH3PmzOHMmTPk5+djMpkYMGCA09rD7a20tG7F9/ryhrS0NGpqapg8ebLRJjw8nPj4ePbt20dCQgKpqan06dOHMWPGGG3Gjh2Ln58f+/btIy4ujtTUVOLj453WSE5ISKCqqoq0tDTGjx/fYc8kIt2Aw4GpqMh5xLeJCW6m2lqjVrdFF0xwu6c6hj19z09wG+ID7wVC1PmFHlwudwAIaPDdWrW+IiLtx+UwXF5ezs6dOzly5Ahms5l77rmnw0dPq6ureeKJJ5g+fbpRD1xQUIDZbG40mc9isRi1ywUFBQQHB2NqsLyQyWRyqm8uKCjAYrE4XSM4OBiz2dxiDXRmZma7PFtnX1s6l/qy+/EoK8Pn2DG8jx3D58gRfI4exVxWht2F15Y32OK40uHBkVovjgQN5KuBsXw7MIbDg6LxCw/lQUspg7xqefJ0KLsrnL8/5lTC8vQz/G+/87XFfapDgaa+jzqA89+/zDj4iV8umZmVTq0e8wK86n5dnQv6U9c6/d3sOdSXPUtH9mdro84uh+EPPviAiooKZsyYwdatW7Hb7cbxvn37ct11113anV6gtraWhQsXUlJSwttvv91qe4fD0Sj8tqVNS8eh9Q+0rbr6RwTSftSX3UBlpVOdrzkrC1NT/8j182v1UuXl5djDItgZGEN6aAwfB8dwIDSact8LfiLmgAxrf/56DZSVARVNXMvbn7i48+H3uQrI2N/EhhaDTTydAyW1dSPC64eauD4oovEF5aLo72bPob7sWbq6P10Ow4cPH+bOO+8kJCTEKSzGxcWxa9eudg3DtbW13HvvvXz99df85S9/cdrhLiQkBJvNRlFREf379zeOFxYWMm7cOKNNYWGhU/h1OBwUFRUZo8EhISHs27fP6X2Lioqw2WyNRoxFpBurrcXj6NHz6/lmZ1/aBLc+feomuJ3bvviftZ78mFFOgbU5udV1pQvNTXC7cJmzlsodbhvQptsXEZGL5HIY9vDwMFZzaCgoKAhrG9fSbEpNTQ3/9V//xcGDB/nLX/5CaGio0/lRo0bh5eXFrl27uP322wHIy8szJs1B3TbSZWVlpKamGsdSU1MpLy93avP888+Tl5dnlGDs2rULb29vRo0a1W7PIyLtyOHAlJfnvJ7v4cNQW9u26/XqhX3IEGyxsZwYFM0azxi+7juAgT4mI5S+vO8MOU2M8jbnZDX8Kr7xZhbNLXOmpc1ERLqWy2E4OjqaAwcOMGHCBKfjVVVVeHh4uPyGZWVlZGdnA2C328nNzSU9PZ2goCAGDhzI3XffzZdffsnbb7+NyWQi/9zanf7+/vj6+hIQEMDcuXNZtWoVFovFWFpt+PDhTJw4EYD4+HimTJnC0qVLWbt2LQ6Hg6VLlzJt2jRjGH7y5MkMGzaMRYsWkZycTHFxMatWrWLevHmdvpKEiDShfoJbwxHfrCxMFReRTBuqn+AWG4s9JgZbdDSOiAgwm51XZzhT9/WvM3WjtqdsFzXPmAG9NMFNRORy4vJ3+QkTJrBp0yanYzU1NezZs6fR6G1LvvzyS26++Wbj96tXr2b16tXccccdPP744+zYsQPACLb1Gm7O8cwzz2A2m5k/f76x6cYrr7xirDEM8Oqrr7J8+XJmzpwJQGJiImvWrDHOm81mNm/ezLJly5g+fbrTphsi0gXOnMEjO7tuxPdcADaVlLT9ciFh/DUgmq8HxFAZHcu91w8mMqDpNdGTc2hUBpFTWXfcYnZ91Dm81/nRX434iohcHi5qnWGr1crOnTvJycnB29ubmpoafHx8mD17NgMGqMDtUnR18bi0H/WlC1yd4OYiR3Bw3WhvTAz26GgOD4rh1ky/RmUK741senT2pi/h0yZy9w2B8EivHJaeGdJoTd8hPnC6FirtYDbBd/vCs3Ea/e3O9Hez51Bf9ixd3Z8ujQzb7Xb+85//EBcXR1JSEiUlJcYSZ2FhYfj4+HT0fYrI5aq2Fo8jR5zX883NvfQJbufKHewxMTiCnHea+N+vmx/pbWq0tqUJb4O8alXyICLSg7kUhj08PPjggw+IjIw06nYDAgI6+t5E5HLT3hPcvL3rJridC732mBgcoaHGDm7NaW4zi5PVTR9/YkjzE96qc1XyICLSk7lcMxwWFsbp06eNneBExM219wQ3s9nYwc0eG1s3wS08HBrMBXCVq0ub1WtpwpuW9RcR6dlcDsOjRo3ik08+oV+/fgrEIu6opARzgzrfS53gZg8LM0Z77bGx2KOioFczafUitTTS2xyN/oqIuCeXw/C2bdsAeO2114iJiSEyMpLQ0FBCQ0Px8vLqsBsUkS5QUYFHTs75CW6HDmE6darNl3MEB9eN9p6b4GaPjnZp97e20tJmIiLiKpfD8AMPPEBBQQH5+fmcOnWKf/3rX8ZmG/369eO+++7rqHsUkY7UcILboUN15Q7tPMHtsE8QyTl1tbwDzfCEB0S182NcSCO9IiLiCpfCcH5+Pvn5+fj5+TF27FhjPd+amhojHIvIZcBux3T8+PkJbocO4XHkSLtNcDs6KIb/Vx7KiWoTA73PlyUYG1qcU7+hhUZqRUSkq7UahtPS0khJSTF+HxQUxB133IG/vz9eXl6Eh4cTHh7eoTcpIm3gcGAqLHSe4JadfWkT3CIi6kZ8Y2M5Oiia/1cVzvFaMwO94Z6B8OOMxqF3mN/FLXMmIiLSmVoNw5999hnf+c53uP766zlz5gwffvghH3/8Mbfccktn3J+IuKp+gluD8NveE9yO2HqRnAMHy+Cb49BwPHlHIZTbna+RUwlltqav39wyZyIiIp2p1TBcUlLC6NGj8fPzw8/Pj5tuuomNGzd2xr2JSHPqJ7idq/Ht6AluRyrg8W9gVzFUNlNKfGEQbk1zy5yJiIh0plbDsMPhcFotIujcTk+lpaX07du34+5MROrU1OBx9Oj5CW5ZWXjk5bV9glvfvnWB99yory02FlpYLvFIReOa34vx3b7wzdmLW+ZMRESks7g0gS4tLY1BgwYRGhqKr68vJpMJm62Zn32KSNvZ7XU7uJ0b7fXIyrrkCW62cyO9DXdwO1JpOr+6w3F4wrv5yWzJOa4HYT8P5xHiIT7wbNz562iZMxER6W5aDcORkZF8/vnn7N69G4A+ffpQW1tLWloaUVFRDBgwAF9f/V9N5KJdOMEtKwtzdjZUtnEI1sUd3PYUw+wDzqG1pdUdmtva+EJ+HvCnEfD6iaZDrybLiYhId9RqGP7Rj34EgNVq5cSJE+Tn53PixAn279/PZ599BkBgYCCLFi3q2DsVudyVlNQtZ1b/1V4T3OrX83VhB7cjFY2DMLS8ukNzWxs3VB+Erw+q+xIREblcuLzpRmBgIIGBgQwbNsw4ZrVaOXnyJPn5+R1ycyKXrYqKuqXMDh0yVngwFRa2+XJOE9xiYrAPGdLkDm5HKjhf/uDduBwhOaf5iW7Nre7Q1NbGvUwQ7AWDvGGIr8oeRETk8uVyGG5KfUAeOnRoe92PyOWnpub8Dm5ZWUR+8QW9y8svbYJbfeiNicEWE+M0we1IBTyeCf8qrfv99/xhdWzdr1vb3KKlkofmVnfQ1sYiItKTXVIYFnE7Lkxw61Ve3uSobZN8fBpPcAsJAZMJaDDSm4OxscX9ByG3wSjujiJIL4MRLmxu0VzJg59Hy6s7aGtjERHpqRSGRZrjcGA6der8kmbZ2Zc2wc3T8/wEt3Mjvo7wcPDwcGpWH4BzKuBguXNZQ1MbWwDkVkGVC+UPTZU81Nf7aqRXRETckcKwSL2GE9zOhV/TmTNtu5bJVDfBLTq61QluDet8+5rhQHlduG3KxW5sAc7lDyp5EBERcaYwLO7pwgluWVmXtoNb//7GaG+elxfhEyY0WSrxzkl48Nu6UVxvD1g1GDYcb/uGFg19z79uJLm1zS1U8iAiInKewrD0fBdMcGuXHdzqJ7idW8+34QS3isxMjnj4kfy186oO/yqBe785f52zdng8++Lf3we4MDuHe5+fRKdRXxEREdcpDEvPUj/BLSvrfMnDpezg1nCCW2ws9uhopwluDdWXO3x9OpzDJxpvauHq5hUtGeIDv4qHXx1rvJqENrcQERG5eArDcvnqiAluUVFGuYM9JgbHoEHNTnBrOOoLDZc1azwUeyllEH4eMMzPeT1fbWwhIiLSPhSG5fJhtRobWBg7uF3KBLdBg5zW87VHRYGXV7Mv2VMMCw7WlSA0LLD415m6sNpa4PUAmpr/ZsL5euG94Oq+UGpTqYOIiEhHUxiW7uns2boJbg3KHS5pBzeLxWnE1z5kCPTu3err9hTD4m+gqKb5lRxyKqHM1vo9fK8v7CttfHx1NHxRpjpfERGRrqAwLF2vurrxBLfjx9s+wc3fv/EObgEBrb7uwvKH6f3g/m+gjdXGTob4wG+urJtE13A1iZevgNsGtMMbiIiISJsoDEvnstsx5ebW1ffW1/oePdp+E9xiYnBYLE1OcGvJkYrGWxm/WwAuDPgC8N2+8M3ZxptZXOkHgxvU+kb5KvyKiIh0JwrD0nEcDkwFBU4jvuacnPaZ4Fa/skMTE9zaIjmncc2vq0F4iA88G3f+OtnWs0QH9la5g4iIyGVAYVjaj9V6fjmz+jrf0iaKZF1x4QS32FjskZEtTnCr19RqD62F0rYuezYxANYOdV7WLDMzj7i4uLZdUERERDqVwrC0zYUT3A4dwlRU1ObLtXWCW736AJxTUbcL24Vr/L43suVAPNC76eMXrvQAdQunWbxh/VAtcSYiInK5UxiW1jWc4HZuPd9LmuAWEFBX43uRE9ya01S9b0M5lXVBuaXNKJ4YUheaG21lPBiezoGSWgjwVAAWERHpaRSGxZndjunYsbr1fOvD77FjlzbBLSbmfPiNjcXRv/9FT3BrSVP1vhc6Wd3y+SjfutHjprYy1oQ3ERGRnkth2J3VT3BrsIlFu05wi4nBERbWLhPcWuJKve+AXq23ifLVVsYiIiLuRmHYnTSc4Hau3KFdJridC76uTnCD85tZWGsh8BLLD5qr9603xOf8lskiIiIiDSkM91Tl5Xjk5LTrBLf60V5jgpuv6+uGNVzhwRPYXXJ+6bIzNrh1P7w/sm2BuKl6Xz+Pui2Sh/hqRzcRERFpnsJwT1A/wa2+3KF+B7c2cgQEOO/gFh3doRPcoG6Xt8XfQPp1F3/9lup9RURERFqiMHy5sdkw5ebWTXCrD79Hj4LN1S0iLtBwglt9ne9FTHBzpdzBlQluULdiQ1up3ldERETaotPD8J49e3j55ZfZv38/J06cYN26ddx5553GeYfDwbPPPsumTZuwWq1ce+21PP/88wwbNsxoU1VVxRNPPME777xDZWUl48eP54UXXmDQoEFGG6vVymOPPUZKSgoA06dPZ82aNQQGBhptjh07xrJly9i9ezc+Pj7MmjWL5ORkevVyYbZVZ3A4MOXnn9+9LSsLj5wcqGrjDhH1E9xiY431fNsywa2+5OHrUvi64vw6vM2VO7i6oUWA/mkmIiIinazT40d5eTlXXnkld9xxB4sWLWp0fu3ataxbt45169YRFxfHmjVrmDFjBp9//jl9+/YFYMWKFezYsYONGzcSFBTEypUrSUpK4pNPPsFsNgOwYMECcnNz2bJlCyaTiSVLlnD//fezefNmAGw2G0lJSQQFBbFjxw6Ki4tZvHgxDoeDn//85533gTSj12uvYf7ss0ub4BYe7jTiezET3JrTWslDU+UOrU1wg7o/iOuHXtKtiYiIiFy0Tg/DU6dOZerUqQA88MADTuccDgfr16/n4Ycf5tZbbwVg/fr1xMXFsXXrVubPn09JSQlvvvkm69atY9KkSQBs2LCBESNG8PHHH5OQkEBGRgYffvghKSkpjBkzBoCXXnqJxMREMjMziYuL46OPPuLgwYMcOHCA8PBwAJ5++mmWLFnCk08+ib+/f2d9JE2rrr6oIHypE9xc5UrJw4XlDk1NcAv1Ag8TnLVpMwsRERHpOt3qB9NHjhwhPz+fyZMnG8d8fX0ZN24c+/btY/78+aSlpVFTU+PUJjw8nPj4ePbt20dCQgKpqan06dPHCMIAY8eOxc/Pj3379hEXF0dqairx8fFGEAZISEigqqqKtLQ0xo8f3zkP3Qx7bCx88kmT5xpOcLPFxtYF30uY4HYxXCl5uLDcQRPcREREpLvqVmE4Pz8fAIvF4nTcYrFw4sQJAAoKCjCbzQQHBzdqU1BQYLQJDg7G1GASmMlkon///k5tLnyf4OBgzGaz0aYpmZmZbXy61jW8trfZTER5OXYfH6rCw6mMiKAqKorKiAhqg4KcJ7gVFNR9tSKvxpNXSoM5ZfPEYq5lUd8iBnld3Ky1PtWhQPOj5mYc/MQvl8zMxsPHj3kB56o0qnOh4z7JrteRf06k86k/ew71Zc+hvuxZOrI/4+LiWjzfrcJwPdMFKxk4HI5Gxy50YZum2rvSpqXj0PoH2lb15RuGIUMwxcdjGjSI3iYTvS/x+kcqYOkFtb4ZDn/eG3lxI7TPVUDGBdcxA709IMgL1g81cX1QxCXe7eWtUV/KZU392XOoL3sO9WXP0tX92a3CcGhoKFA3atuwfKGwsNAYxQ0JCcFms1FUVET//v2d2owbN85oU1hY6BR+HQ4HRUVFTtfZt2+f0/sXFRVhs9kajRh3CU9PHA0+g5Y03NCir7lu0PhMbd3EtfpyhKZqfXMq645fzJJkKnkQERGRnuTi1tTqYFFRUYSGhrJr1y7jWGVlJXv37jXqf0eNGoWXl5dTm7y8PDIyMow2o0ePpqysjNTUVKNNamoq5eXlTm0yMjLIy8sz2uzatQtvb29GjRrVkY/ZrvYUw7jPYUsBfFoCfzsNO4rqfr2loG7lhyMVzdf6nqy++PesX9N3+6i6/yoIi4iIyOWq00eGy8rKyM7OBsBut5Obm0t6ejpBQUFERESwePFiXnjhBeLi4oiNjeX555/Hz8+PWbNmARAQEMDcuXNZtWoVFovFWFpt+PDhTJw4EYD4+HimTJnC0qVLWbt2LQ6Hg6VLlzJt2jRjGH7y5MkMGzaMRYsWkZycTHFxMatWrWLevHldv5KEi45UwOwDUG5vvk396G9zy5sN6CZLKouIiIh0hU4Pw19++SU333yz8fvVq1ezevVq7rjjDtavX89DDz1ERUUFjz76qLHpxrvvvmusMQzwzDPPYDabmT9/vrHpxiuvvGKsMQzw6quvsnz5cmbOnAlAYmIia9asMc6bzWY2b97MsmXLmD59utOmG12tfle3ompwmCDWF+L9GpcjJOe0HITrnayGX8U3Xt5siE/dNUVERETclclqtTpabyYdrb54fE9x3S5uTa3xMMQHpwlvN31ZVw7RmttD6soZ6muLVevbsbp6IoC0L/Vnz6G+7DnUlz1LV/dnt5pAJ3Ujws0tdnbhhDdXdnZrOPpbX+srIiIiInUUhrsZayvL/jac8NbUzm4+wNhAsKHRXxEREZHWKAx3M4GecMbW/PmGE960zJmIiIjIpVEY7mbWD225ZvjCCW8qfRARERFpu261zrDA9UHw/kiI9IY+prqd3a72q5sEd7G7xYmIiIhIyzQy3A1dHwTp13X1XYiIiIj0fBoZFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtKQyLiIiIiNtSGBYRERERt6UwLCIiIiJuS2FYRERERNyWwrCIiIiIuC2FYRERERFxWwrDIiIiIuK2FIZFRERExG0pDIuIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbXW7MGyz2UhOTubqq68mNDSUq6++muTkZGpra402DoeD1atXM3ToUAYMGMCNN97IwYMHna5TVVXFo48+SnR0NGFhYcyZM4e8vDynNlarlYULFxIZGUlkZCQLFy7EarV2xmOKiIiISDfQ7cLwL37xC1577TWee+45UlNTefbZZ3n11Vd58cUXjTZr165l3bp1PPfcc3z00UdYLBZmzJhBaWmp0WbFihVs376djRs3smPHDkpLS0lKSsJmsxltFixYQHp6Olu2bGHr1q2kp6dz//33d+rzioiIiEjX8ezqG7hQamoq06dPJzExEYCoqCgSExP54osvgLpR4fXr1/Pwww9z6623ArB+/Xri4uLYunUr8+fPp6SkhDfffJN169YxadIkADZs2MCIESP4+OOPSUhIICMjgw8//JCUlBTGjBkDwEsvvURiYiKZmZnExcV1wdOLiIiISGfqdiPDY8eO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w+LFi3nhhReIi4sjNjaW559/Hj8/P2bNmgVAQEAAc+fOZdWqVVgsFoKCgli5ciXDhw9n4sSJAMTHxzNlyhSWLl3K2rVrcTgcLF26lGnTpulHLyIiIiJuotuF4e985zu89dZb/PSnP+XnP/854eHh/OQnP2HBggVGm4ceeoiKigoeffRRrFYr1157Le+++y59+/Y12jzzzDOYzWbmz59PZWUl48eP55VXXsFsNhttXn31VZYvX87MmTMBSExMZM2aNZ33sCIiIiLSpUxWq9XRejPpaF1dPC7tR33Zs6g/ew71Zc+hvuxZuro/u13NsIiIiIhIZ1EYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelMCwiIiIibkthWERERETclsKwiIiIiLgthWERERERcVsKwyIiIiLithSGRURERMRtmaxWq6Orb0JEREREpCtoZFhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMt9GePXuYM2cOw4YNIzAwkLfeesvpvMPhYPXq1QwdOpQBAwZw4403cvDgQac2VVVVPProo0RHRxMWFsacOXPIy8tzamO1Wlm4cCGRkZFERkaycOFCrFarU5tjx46RlJREWFgY0dHRPPbYY1RXV3fIc/dErfXltm3bmDlzJjExMQQGBrJ79+5G11Bfdg8t9WVNTQ1PPfUU48aNIywsjPj4eBYsWMCxY8ecrqG+7D5a+7uZnJzM9773PcLCwoiKiuKWW25h3759Tm3Un91Da33Z0EMPPURgYCAvv/yy03H1ZffQWl8uXryYwMBAp68pU6Y4telufakw3Ebl5eVceeWVPPvss/j6+jY6v3btWtatW8dzzz3HRx99hMViYcaMGZSWlhptVqxYwfbt29m4cSM7duygtLSUpKQkbDab0WbBggWkp6ezZcsWtm7dSnp6Ovfff79x3mazkZSURFlZGTt27GDjxo1s27aNlStXduwH0IO01pdnz55l9OjR/OxnP2v2GurL7qGlvjx79iz79+9n2bJlfPLJJ/zhD38gLy+PWbNmUVtba7RTX3Yfrf3djIuL4/nnn+ef//wnKSkpREVFMWvWLAoKCow26s/uobW+rPf+++/z73//m4EDBzY6p77sHlzpy4kTJ5KRkWF8bdmyxel8d+tLrTPcDgYNGsSaNWu48847gbpR4aFDh3LfffexbNkyACoqKoiLi+N///d/mT9/PiUlJcTGxrJu3Tpmz54NQG5uLiNGjGDr1q0kJCSQkZHBmDFjSElJYezYsQDs3buXxMREPv/8c+Li4vj73//O7NmzOXDgAOHh4QBs3ryZJUuWkJmZib+/fxd8IpevC/uyoaKiImJiYti+fTs33HCDcVx92T211Jf1vvnmG8aOHcuePXsYPny4+rIbc6U/z5w5Q2RkJO+88w4JCQnqz26qub48evQo06ZN47333mPWrFksXLiQBx98END32e6qqb5cvHgxp0+fZvPmzU2+pjv2pUaGO8CRI0fIz89n8uTJxjFfX1/GjRtn/AgvLS2Nmpoapzbh4eHEx8cbbVJTU+nTpw9jxowx2owdOxY/Pz+nNvHx8cYfBICEhASqqqpIS0vryMeUc9SXl6/6n9QEBgYC6svLWXV1NZs2bcLf358RI0YA6s/LSW1tLQsWLGDZsmXEx8c3Oq++vLzs3buX2NhYrr32WpYsWcKpU6eMc92xLz3b8pDSsvz8fAAsFovTcYvFwokTJwAoKCjAbDYTHBzcqE39j/gKCgoIDg7GZDIZ500mE/3793dqc+H7BAcHYzabnX5UKB1HfXl5qq6u5oknnmD69OkMGjQIUF9ejlJSUrj33ns5e/YsAwYM4M9//jMhISGA+vNysnr1aoKCgrj33nubPK++vHxMmTKFm2++maioKI4ePUpycjK33HILH3/8Md7e3t2yLxWGO1DDToS68okLj13owjZNtXelTUvHpXOoL7uv2tpaFi5cSElJCW+//Xar7dWX3dcNN9zA7t27KSoqYtOmTdxzzz38/e9/Z8CAAc2+Rv3ZvXz66af84Q9/aHJycmvUl93PbbfdZvx6+PDhjBo1ihEjRrBz505uueWWZl/XlX2pMokOEBoaCtDoXyaFhYXGv2JCQkKw2WwUFRW12KawsBCH43xZt8PhoKioyKnNhe9TVFSEzWZr9C8m6Rjqy8tLbW0t9957L1999RXvv/8+/fr1M86pLy8/fn5+REdH873vfY9f/epXeHl58cYbbwDqz8vF7t27OXnyJPHx8QQHBxMcHMyxY8d46qmnuPLKKwH15eVs4MCBhIWFkZ2dDXTPvlQY7gBRUVGEhoaya9cu41hlZSV79+416l9GjRqFl5eXU5u8vDyjaBxg9OjRlJWVkZqaarRJTU2lvLzcqU1GRobTkiS7du3C29ubUaNGdeRjyjnqy8tHTU0N8+fP56uvvmL79u3GP1zrqS8vf3a73VhaSf15eViwYAF79uxh9+7dxtfAgQN54IEHeP/99wH15eWsqKiIEydOGN9vu2NfqkyijcrKyox/5djtdnJzc0lPTycoKIiIiAgWL17MCy+8QFxcHLGxsTz//PP4+fkxa9YsAAICApg7dy6rVq3CYrEQFBTEypUrGT58OBMnTgQgPj6eKVOmsHTpUtauXYvD4WDp0qVMmzaNuLg4ACZPnsywYcNYtGgRycnJFBcXs2rVKubNm6dZsS5qrS+Li4s5duwYJSUlAOTk5BAQEEBoaCihoaHqy26kpb4cOHAgd999N19++SVvv/02JpPJqO/39/fH19dXfdnNtNSfAQEB/PKXv2T69OmEhoZSVFTEq6++yvHjx/nhD38I6Ptsd9La99kLR/I8PT0JDQ01+kB92X201JdBQUE8++yz3HLLLYSGhnL06FF++tOfYrFYuOmmm4Du2ZdaWq2Ndu/ezc0339zo+B133MH69etxOBw8++yzvP7661itVq699lqef/5540c+UDda/OSTT7J161YqKysZP348L7zwgtPMyOLiYpYvX87f/vY3ABITE1mzZo0x+x3qFp1etmwZ//d//4ePjw+zZs0iOTkZb2/vjvsAepDW+vKtt97iv//7vxudX758OStWrADUl91FS335+OOPM3LkyCZft27dOmNpIPVl99FSf77wwgvcd999fPHFF5w+fZp+/fpxzTXX8Mgjj/Dd737XaKv+7B5a+z57oREjRjgtrQbqy+6ipb588cUXufPOO0lPT6ekpITQ0FBuuOEGVq5c6dRP3a0vFYZFRERExG2pZlhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjbUhgWEREREbelHehERMQlaWlp7N27lzNnznD11VeTmJjY5DERkcuJwrCISCfKycnhj3/8Y4ttbrrpJkaMGNFJd+SaoqIidu7cyQ9/+EPCwsLw9vZu8lh7+Oijjzh16hRJSUntcj0RkZYoDIuIdKLw8HCnLWY3bdrEsGHDGD16tHHM19e30evsdjseHl1X2ZaZmYnFYiE+Pr7FY+3h+PHjREZGtus1RUSao+2YRUS6SGVlJb/4xS+YMWOGU6A8c+YM69at49ZbbyUtLY28vDymTp2Kv78/W7Zs4ZFHHsFsNgNQUlLCr3/9axYuXEhwcLDx+k8++YSsrCwcDgdRUVFMnTqVPn36NHsvLb1mw4YNnD592mh7xRVXUFhY2OjYbbfd5tJ7nz17lv/7v/8jMzOTyspKgoKCSEhIIDIykhdeeAGbzWa07d+/P/fdd9+lf9giIs3QyLCISBc5efIkDoeDAQMGOB0vKCgA4LPPPmPChAn069cPb29v0tPT6d+/vxGE69t6eXnRr18/AKxWK2+88QZXX301d911Fzabjb///e/s3LmT2267rcn7aO01d911F7///e+56qqrGDlyJF5eXtTW1jY65sp7nzlzhjfeeIOBAwcyY8YM/Pz8OHbsGL169cLDw4O5c+fy+uuvc/fdd+Pv7+/0rCIiHUFhWESki+Tn59O7d28CAgIaHff09GTGjBkEBQU5HQ8JCWnUNiQkBJPJBEBKSgojR45kwoQJRpvvf//7vPvuu83eR2uv8fb2xmq1Eh4ebozwms3mRsf+/Oc/t/reKSkphISEMHPmTOOeGz5jeXk53t7eDBw40DgvItKRFIZFRLrIyZMnCQ0NbXS8oKCAmJgYp5BYf3zkyJGNjlksFqCuZCInJ4fc3Fz+9a9/GW3sdjteXl5N3oMrrzl16hR2u93pXi885sp1SkpKyMrK4p577mk26J48eRKLxaIgLCKdRmFYRKSL5Ofnc8UVVzQ6XlBQwLXXXut0rKamhtOnTzcaGT5+/Djjxo0zXuft7c38+fMbXbO5yXeuvCY/P5+AgAB8fHyc7r3hMVev4+Hh0ags5ML7aem8iEh7UxgWEekC1dXVnD59utHIcHV1NcXFxY2OW61W7Ha7URsMcPToUUpLS42A7OHhQU1NDX5+fvTq1cul+3DlNQUFBY3u58JjrlzHbDZjt9uprq5udhm2goICoqOjXbp3EZH2oB3oRES6QGuT5y4Mn76+vphMJk6ePAnAiRMn+Nvf/obJZDLCcFhYGD4+Pmzfvp2TJ09SXFxMTk4OO3fuxOFoeuEgV17TUq3yxVxn4MCB+Pr6kpKSwqlTpygqKiItLY38/HzjOna7ndOnT1NaWkplZeVFf64iIhdLI8MiIl0gPz8fHx8fAgMDnY6fOnWKfv36NRpd7dOnDxMmTGDHjh188MEHREREMGzYML7++mujra+vL7Nnz2bXrl28/fbb2O12AgMDGTZsWLM1uK29xuFwcOrUKcaMGWO8pqljrrx37969ue2229i1axdvvPGGUTIRGxtrXGf8+PF8/PHHpKamMmrUKKZPn35Jn7OISGu0zrCIiIiIuC2VSYiIiIiI21IYFhERERG3pTAsIiIiIm5LYVhERERE3JbCsIiIiIi4LYVhEREREXFbCsMiIiIi4rYUhkVERETEbSkMi4iIiIjb+v8B+uaDoMnIfZgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_effect(\n",
    "    effect_true=effect_true,\n",
    "    effect_pred=effect_pred,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Matching in the wild - simulation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Probability of finding at least one match per row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 26.97it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 25.04it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 23.94it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.91it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.25it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 20.84it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 19.32it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.78it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.11it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 18.06it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 17.25it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 16.70it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 16.13it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 15.72it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 15.02it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 14.75it/s]\n",
      "100%|████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 14.53it/s]\n"
     ]
    }
   ],
   "source": [
    "results_per_dimension = {}\n",
    "\n",
    "for d in range(2, 19):\n",
    "    results = []\n",
    "    \n",
    "    N_SAMPLES = 1000\n",
    "    DIM_X = d\n",
    "\n",
    "    for i in tqdm(range(100)):\n",
    "\n",
    "        X = np.random.binomial(n=1, p=.5, size=(N_SAMPLES, DIM_X))\n",
    "\n",
    "        local_results = []\n",
    "\n",
    "        for row in range(X.shape[0]):\n",
    "            # Did we find at least 1 match for `row`?\n",
    "            success = (np.where(np.where(X == X[row], 1, 0).sum(axis=1) == DIM_X, 1, 0).sum() - 1) > 0\n",
    "            local_results.append(success)\n",
    "\n",
    "        results.append(np.array(local_results).mean())\n",
    "        \n",
    "    results_per_dimension[d] = results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute statistics\n",
    "mean_p = pd.DataFrame(results_per_dimension).mean(axis=0).values\n",
    "sd_p = pd.DataFrame(results_per_dimension).std(axis=0).values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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6f14+/Ot16C5NfDVRvr//MFyWnCDN52rYqbt9Gg1akJMKBRix44dPUZQrrzySt54441eX7NlyxYWL16M19vRv++qq67iu9/9LocPH2by5MlDWbKIiIiIDLH+RnMy3EGmpnVdX9Ieclr/8R+JtU6/omMKVufpWLHWn20LU2J0CkGdAlE8nDaY6DK3RIjGTKjpLeD0F4BO91z34y0xsLVP8hu9Rk2IqaysJBKJ4PP5uhz3+XwEAoFeXxMIBMjNze1xfttzfYWY4uLiMy/4DI2GGsYjXdfE0zVNPF3ToaHrmni6pkND1zWxLAsOlpz+mlp0LIzvS1ugiWARjUE4ZtECNMUsoq33o1it63isLudGW5+LdV6d37rex4wKxbC1PtW+fuUMR4cswNt6G9DJ/V0ATJhrAZqjFiX7K/HaRjbMzJgxo8/nRk2IadN9ClgsFjvttLDezu/teGenuyDDobi4eMRrGI90XRNP1zTxdE2Hhq5r4umaDg1d18QbTdc02m3Ep/uoULj1HDr97C0mxLodjHX72duxXs/p4zNOd04MOHTkKDOnT8fTT+gZSaMmxGRlZWG323uMulRUVPQYnWnj9/t7PR/o8zUiIiIiIkOhvS3ySBdyhtLcwVEdYKDHNj0jx+VyMX/+fNasWdPl+Jo1a7jkkkt6fc3FF1/M5s2bCQaDXc6fNGkSRUVFQ1qviIiIiIiMjFETYgDuuecefvOb3/CrX/2Kffv28dWvfpXS0lLuvPNOAB544AFuuOGG9vP//u//Hq/Xy+c+9zneeecdXnjhBX784x/zuc99Tp3JRERERETGqVE12nXzzTdz6tQpHnzwQcrKypgzZw7PPPNM+y6spaWlHDx4sP389PR0nn/+eb785S9zxRVXkJGRwT333MPnP//5kfojiIiIiIjIEBtVIQbg7rvv5u677+71uccee6zHsblz5/Lyyy8PdVkiIiIiIjJKjKrpZCIiIiIiIv1RiBERERERkTFFIUZERERERMYUhRgRERERERlTFGJERERERGRMUYgREREREZExRSFGRERERETGFIUYEREREREZUxRiRERERERkTFGIERERERGRMUUhRv5/e/cf1OR9xwH8HRIxgEoCIiCCrIAoIIiI/LIiVhTHMVrxrva6qzrRdZ1urtNpXTtP112VWdue51mt9epuKszJnLJWXc8f/BSZrQIGfxVRsUIASTT8TEj2B5eMEAR0rU8e+n7d9Q+/efLk/X3CNc8n3x8hIiIiIhIVFjFERERERCQqLGKIiIiIiEhUWMQQEREREZGoSDQajUnoEERERERERIPFkRgiIiIiIhIVFjFERERERCQqLGKIiIiIiEhUWMQQEREREZGosIghIiIiIiJRYRHzjGzfvh1JSUnw9fVFQEAAXn75ZahUKqFjDSnvv/8+FAoF1q5dK3QU0aurq8Prr7+OgIAAeHp6IiYmBoWFhULHEq2uri68++67CA8Ph6enJ8LDw/Huu+/CYDAIHU00ioqKsGjRIkyaNAkKhQIHDhywetxkMuG9997DxIkT4eXlhdTUVFRVVQmUVjz6u656vR4bN25EfHw8xo4di+DgYGRmZuLu3bsCJrZ/A/2t9vTrX/8aCoUCO3bseIYJxWkw1/XmzZv46U9/Cj8/P3h7e2PmzJm4du2aAGnFYaBrqtPpsHbtWoSEhMDLywvTpk3Dzp07BUpri0XMM1JYWIhly5bh5MmTOHbsGGQyGV588UU0NzcLHW1IKCsrw/79+xEaGip0FNHTaDSYN28eTCYT/va3v6G0tBRZWVnw8PAQOppoffjhh9i7dy+2bt2KCxcuYMuWLfjkk0+wfft2oaOJRktLC0JCQrBlyxY4OTnZPP7RRx9h586d2Lp1K06fPg0PDw+89NJLePTokQBpxaO/69ra2orLly9jzZo1OHfuHA4ePIh79+5h4cKFLMD7MdDfqtk///lPfPXVV/D29n6G6cRroOtaU1ODefPmYfz48Th27BhKSkrw9ttvw8XFRYC04jDQNf3973+PU6dO4eOPP0ZpaSl++9vfYtOmTcjOzhYgrS3+ToxAdDod/Pz8cODAAcyfP1/oOKKm1WqRmJiIjz76CFlZWQgJCcGf//xnoWOJ1ubNm1FUVISTJ08KHWXIePnll6FUKvHxxx9b2l5//XU0NzcjJydHwGTi5OPjg6ysLLz66qsAukdhJk6ciOXLl2PNmjUAgLa2NgQFBeGPf/wjli5dKmRc0eh9Xfty9epVxMbGoqioiF8aDcLjrumdO3cwb948HD16FAsXLsSKFSuwatUqgVKKT1/XNTMzExKJBJ988omAycSrr2saFxeHtLQ0bNiwwdL24x//GKGhoXZxn8WRGIHodDoYjUYoFAqho4je6tWrkZ6ejsTERKGjDAn/+te/EBUVhaVLlyIwMBAzZszAnj17YDLx+46nFRsbi8LCQly/fh1A941gQUEBkpOTBU42NNy+fRv19fWYPXu2pc3JyQnx8fEoLS0VMNnQYx7Z4mfX0zMYDMjMzMSaNWsQHBwsdJwhwWg04sSJEwgODkZGRgYCAgKQlJSE3NxcoaOJWmxsLE6cOIHa2loAQGlpKSorK/HCCy8InKybTOgAP1Tr16/H5MmTMX36dKGjiNr+/ftRXV2N3bt3Cx1lyKipqcGnn36KN954A6tXr0ZFRQXWrVsHAFixYoXA6cRp9erV0Ol0iImJgVQqhcFgwJo1a5CZmSl0tCGhvr4eAGymPHp4eOD+/ftCRBqSOjs78fbbbyMlJQU+Pj5CxxGt9957D0qlEsuWLRM6ypDR0NAAnU6H7du3Y8OGDdi4cSPy8/OxfPlyODs7IyUlReiIorR161b85je/QVhYGGSy7pIhKyvLbq4nixgBbNiwAefPn8eJEycglUqFjiNaN27cwObNm/HFF1/A0dFR6DhDhtFoRGRkJDZu3AgAiIiIQHV1Nfbu3csi5inl5uYiOzsbe/fuxcSJE1FRUYH169fDz88Pr732mtDxhgyJRGL1b5PJZNNGT8dgMGDFihXQarU4dOiQ0HFEq7CwEAcPHkRBQYHQUYYUo9EIoHuq08qVKwEA4eHhuHTpEvbu3Ws3N91is3v3bpSWluLQoUPw9fVFcXEx3nnnHfj5+WHOnDlCx2MR86y99dZbyM3NxfHjx+Hv7y90HFG7cOECmpqaEBcXZ2nr6upCcXEx9u3bh2+//RbDhw8XMKE4eXp62kxxmDBhgmU4mZ7cH/7wB6xcuRIZGRkAgNDQUNy9excffPABi5jvgKenJwBArVZj3LhxlvbGxkZuSPEdMBgMWLZsGVQqFfLy8uDm5iZ0JNEqKChAXV2d1f9ju7q6sHHjRuzatYu7lj4ld3d3yGSyPj+7OKXs6bS1tWHz5s347LPPLGu3w8LCUFFRgR07drCI+aFZt24dcnNzkZeXhwkTJggdR/RSU1MRGRlp1fbLX/4SAQEBePPNNzk685RiY2Nx8+ZNq7abN2/C19dXoETi19raajPqKpVKLd8e0v9n/Pjx8PT0xJkzZzB16lQAQHt7O0pKSrB582aB04mbXq/Hz372M1RVVSEvL89SMNLTyczMRHp6ulVbRkYGMjIysHjxYoFSiZ+joyOmTp2KGzduWLXzs+vp6fV66PV6u/7sYhHzjKxZswY5OTn461//CoVCYZnD7eLighEjRgicTpwUCoXN4lJnZ2colUqEhIQIE2oIeOONNzB37lxs27YNCxYsQHl5Ofbs2YN33nlH6GiilZKSgg8//BDjx4/HxIkTUV5ejp07d2LRokVCRxMNnU6H6upqAN1TR2pra1FeXg6lUglfX1/84he/wPvvv4+goCAEBgZi27ZtcHFxwcKFCwVObt/6u67e3t5YvHgxvv76axw6dAgSicTy2TVq1Kh+tw/+IRvob7X36KBMJoOnpyeCgoKEiCsaA13XX/3qV1i6dCni4+Mxc+ZMFBQUIDc3t9/f6fmhG+iaJiQkYNOmTXBxcYGvry+KioqQnZ2NTZs2CZy8G7dYfkYet5PLunXr8NZbbz3bMENYamoqt1j+Dpw8eRKbN2/GzZs3MW7cOCxfvhw///nPub7gKT169Ah/+tOfkJeXh8bGRnh6eiIjIwO/+93vIJfLhY4nCgUFBUhLS7Npf+WVV7Br1y6YTCZs2bIFn332GTQaDaKiorBt2zZ+oTGA/q7r+vXrERER0efzdu7c2e9WzD9kA/2t9jZ58mRusTwIg7muBw4cwPbt23Hv3j0899xzePPNN/lFRj8Guqb19fXYtGkTzpw5g+bmZvj6+uK1117DypUr7eJ+gEUMERERERGJCn8nhoiIiIiIRIVFDBERERERiQqLGCIiIiIiEhUWMUREREREJCosYoiIiIiISFRYxBARERERkaiwiCEiIiIiIlFhEUNERERERKLCIoaISMQMBgO2bt2KoqIioaP83+ytL/aWp6fS0lLs3r0bWVlZ+OCDD4SOQ0T0zMmEDkBERP9z+/ZtHDx40PJvBwcHyOVyuLu7Y9KkSZgyZQqkUqnl8YaGBhiNRnh4eAgR9ztlb31pamrqM09RURF8fHzg7+8vSK5Lly7h9OnTiIqKgre3N5ycnPo8rqSkBGfPnsXixYsxduxYq8fOnj2LkpISpKSkIDIy8lnEJiL6TrGIISKyI2q1GgAwa9YsjBw5EkajES0tLaipqcGpU6dQWVmJRYsWYfjw4QAALy8vrF271qqwESt764v5vRgzZoylTaPRID8/H6mpqULFQnl5OXx8fDB37tx+j4uMjERxcTHKysqQnp5uaVepVCgpKUFkZCQLGCISLU4nIyKyI2q1GhKJBNOmTUNYWBjCw8MRFxeHV155BcnJyfj222+Rn59vOV4ikUAmk0EikQiY+rthb31paGiAo6MjXF1dLW33798H0F1wCcFoNKK+vh5+fn4DHiuXyxEeHo6rV69Cq9UCAOrr6/H555/D19cXycnJ33dcIqLvDUdiiIjsiFqthlKpxLBhw2wemzZtGi5evAiVSoU5c+ZAIpHg8OHDaGlpwZIlSyzHHT58GDqdDikpKTh79izu3bsHJycnJCUlISQkBLW1tcjPz8f9+/cxYsQIJCcn47nnnrN6rdraWpSUlODevXswmUzw8vLCCy+8YDUqAQA5OTlob2/H/PnzkZ+fjzt37kAmkyEyMhLPP/+85biHDx+iuLgYNTU1ePToEeRyOTw8PDBr1ixLQdBXXwCgpqYGJSUlqKurg9FoxI9+9CPMmTMHo0aNeuIcAPDgwQOUlZXh9u3bePjwIRwdHTFu3DjMnj0bCoXC6r3w8PCwFFV/+ctfcO/ePQDAp59+CqB7ut/48ePR0NCAVatW2bxn2dnZePjwITIzM+Hg0P/3hgP184svvsClS5cAdE8VKykpwejRo7F8+fLHnjM6OhoXL17ExYsXERMTgyNHjsDJyQkvvfSS3Yx4ERE9DY7EEBHZCaPRiMbGRptCoScvLy+0traira0NwP9utHtSq9XQ6/U4cuQIxo4di1mzZsFkMiEvLw/l5eU4evQo/Pz8MHPmTHR2duLYsWPQ6/WW51+5cgUHDhyAXq/HjBkzkJCQAK1Wi4MHD6KlpaXP18rJycHo0aORlJQEpVKJwsJC1NTUAABaWlqwf/9+1NTUYPLkyUhOTkZkZCQ6OjpgNBqtztW7L//5z3+QnZ0NqVSKWbNmISYmBrdv38bf//53m+cOlMOsoqICjY2NmDRpEubMmYOwsDBUV1fjyJEjVsc1NDRY5YmJiYGXlxdcXV2RlpaGtLQ0pKenY9y4cdDpdHj06JHV82tqanDr1i0kJiYOWMAMpp+TJk3C1KlTAQBJSUlIS0sbcDRFoVBgwoQJuHz5MnJzc9Ha2oqFCxfCxcWl3+cREdk7jsQQEdmJpqYmGAyGfhe2m0cFTCYT2tvb8fDhQ6uix9zm5OSEJUuWWEYW5HI5jh8/jnPnzmHJkiUYOXIkAEAqleLkyZPQaDTw8PBAU1MTPv/8c8TGxiIxMdFy3uDgYOzatQtVVVWYNm0aAKCtrQ06nQ4GgwFLly61vFZQUBB27NiBuro6+Pv7o7KyEq2trVi1ahWcnZ0t55wxY4ZN7p59qa2txZdffonp06dj9uzZlnZ3d3ccPXoU33zzDYKCggadwyw+Pt5mpMvV1RWnTp2CVquFq6srWltbodPprPIEBwfj7Nmz8PHxQVhYmKW9uroaQPdULfN1NZlMOHPmDHx8fBAcHPzY9/NJ+unv7487d+7AwcEB06ZNg0w2uI/w6OhoXLt2DbW1tUhPT4enp+egnkdEZM84EkNEZCf6WkjeW1tbGxwcHODk5GQ5vmfRY26Lj4+3mhpl3gjg+eeft9xo92w3F0eFhYVwdnZGVFQUWltbLf8NGzYMLi4u0Gg0A76W+ebaPF2pvb0dJpMJ9fX1A/a9Z19KSkrg7OxsVUwBgK+vL4Duou9Jcpj1LGDa29vR2toKR0dHALCMevSVR6/Xo7m52abINE+Hq6urs7SpVCrU1dVh1qxZj+3zk/YT6B4dcnd3H3QB0/P5I0aMwMSJEwf9PCIie8aRGCIiOzGYIqa+vh7e3t5wcHBAQ0ODzfHmtgkTJlg9z3wjGxQUZNX+4MEDSKVSKJVKdHV14ebNm+js7MSOHTv6fH1z0TOY13JzcwMAhIeHo6KiAtnZ2RgzZgyCg4MRFhZmVXD07oter8etW7cQGRlpU4SYp76Z2webA+guUiorK/HVV1+hqakJnZ2dlsekUqll/UljYyMA2wLRZDLZvD/Ozs5QKBSWIq2rqwv5+fkIDAwccAH+k/TTnKH3dsn9uXv3Lk6dOgU3Nzc8ePAAV69eRUhIyKCfT0Rkr1jEEBHZCbVajeHDh1vthtXTrVu30NLSgunTp1uOHzFihNUULbVaDScnJ6sCwdw+atQom7UQarUabm5ukEqllpv6hISEx9589ywIzK+lVCptzgn8ryBRKpVYsWIFrl+/jm+++Qbnz59HcXExFixYgMDAwD778uDBA3R1dcHd3d0mQ3NzM4D/FRiDzQEAeXl5UKlUCA0NxdSpU+Hs7AyZTIb8/Hzo9XpLwaBWqzFy5Eir32Dpq2g08/b2tiz6//rrr6HVapGRkdHnNezpSfrZ0dEBrVaLKVOmDHheANBqtfjHP/4Bd3d3vPrqq9i3bx8uXLjAIoaIhgQWMUREdkKtVmP06NF9bjFsMBhw5swZODk5WW5iGxoabG6o+2ozn7uvtRA9v9nv6OgA0F2oDOaHHHsvfDerr6+Hs7Oz1bQ1R0dHhIWFISwsDBqNBvv27cOVK1csRUzv3OZr0NeC+MuXL0Mul1umWw02R2NjI65cuYLExETEx8dbjuvo6IBarbZau9LXdTQXSz13RTPz9vZGVVUVNBoNiouLERoa2u+I2tP2s6+RoL6YN3YwmUzIyMiAXC5HdHQ0vvzyS9y5c2dQWzQTEdkzrokhIrIDLS0tNgvJzXQ6HQ4fPgy1Wo358+dDLpfDZDLZ3Gib23oXKwaDAU1NTTbnNn+zb253dXWFRCLB9evXbTKYTCa0trZa/buxsfGxhZH5nD2fYzZs2DB0dXVZLYLv3RelUgkHBwfL6IbZrVu3cO3aNURHR0MqlQ46BwDL7mE9R5NMJhNOnDgBvV5vOdZ8zt6FkVartSrMejKvizl+/Dg6OjpstnV+nMH209wfAP1u/GDOn5eXh4aGBqSnp1tG5SIiIiCXy1FWVjaobERE9owjMUREdsB8g9rR0YHKykrL7mP379/HjRs3AAA/+clPLKMFGo0GnZ2dVje0fbUB3SMQRqOxz5GFnt/su7i4ICQkBFeuXEFOTg4CAwNhMpmg1Wpx/fp1zJ492+b1e5/TXJCYR4v+/e9/o6GhAUFBQZZdvy5fvozhw4cjKirqsbmHDRuGqVOn4uLFi5DJZPD09IRarcalS5cQEBBgGUkZbA6gexqYo6MjTp8+jUePHsFoNKKqqsqymN98jsddR4VCgerqahQXF2PUqFFQKpXw8fEB0D0SI5FIUFtbi+nTp9tM53ucwfbT/H49biSop6KiIly9ehVz5861GlFzdHTElClTUFpaigcPHlgVc0REYsMihojIDpiLGJVKBZVKBZlMBrlcjtGjRyM+Ph4RERE2a18A6/UZ5rbeoxKPazev8eh5s56amooxY8agsrISZ86cgUwmg6urK0JCQqymID3unL0LAH9/f0vh0t7ejpEjR8Lf3x8JCQmWm/HHbWiQlJQEiUQClUqF8vJyKJVKJCYmIjo62jL9arA5gO4i7cUXX8Tp06dx9uxZKJVKREVFwWAwoL6+3mqNTV954uLi0NzcjPPnz6OjowMzZ860FDGOjo5wc3ODTqdDXFwcnsRg+mnONdAozPXr11FYWIiIiAhLkdhTVFQUysrKUFZWhnnz5j1RTiIieyLRaDQmoUMQERGJmUajwZ49e5CQkICEhASh4xARDXlcE0NERPR/OnfuHJydnS07xxER0feL08mIiIieQltbG6qrq3H37l2oVCosWLDA6oc0iYjo+8MihoiI6Cncvn0bx44dw8iRIzF37lyrLZqJiOj7xTUxREREREQkKlwTQ0REREREosIihoiIiIiIRIVFDBERERERiQqLGCIiIiIiEhUWMUREREREJCosYoiIiIiISFRYxBARERERkaiwiCEiIiIiIlH5L4pu5PosBrWIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot\n",
    "plt.figure(figsize=(12, 8))\n",
    "plt.fill_between(range(2, 19), mean_p - sd_p*2, mean_p + sd_p*2, color=COLORS[0], alpha=.2, label='$+/-2SD$')\n",
    "plt.plot(range(2, 19), mean_p, color=COLORS[0], lw=2, label='$\\mu$')\n",
    "plt.legend()\n",
    "plt.xlabel('$Dimensionalty \\ of \\ X$', alpha=.5)\n",
    "plt.ylabel('$Probability \\ of \\ finding \\ at \\ least \\ one \\ match$', alpha=.5)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:causal_book_py38]",
   "language": "python",
   "name": "conda-env-causal_book_py38-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
